如何在 Pythonanywhere 中找到自定义模块

问题描述 投票:0回答:0

我正在尝试在 PythonAnywhere 上部署一个 webapp,它在提交名称时运行一个 scrapy spider(它抓取的 URL 取决于这个名称)。我的 scrapy 项目的名称是“scraperra”。 webapp 本身运行正常,但是当名称被提交时(因此蜘蛛应该开始爬行)我在服务器日志中得到 ModuleNotFoundError: No module named 'scraperra'。这是回溯:

Traceback (most recent call last):
    File "/home/AZServices/.virtualenvs/venv/bin/scrapy", line 8, in <module>
        sys.exit(execute())
    File "/home/AZServices/.virtualenvs/venv/lib/python3.10/site- 
        packages/scrapy/cmdline.py", line 125, in execute
        settings = get_project_settings()
    File "/home/AZServices/.virtualenvs/venv/lib/python3.10/site- 
       packages/scrapy/utils/project.py", line 71, in get_project_settings
       settings.setmodule(settings_module_path, priority="project")
    File "/home/AZServices/.virtualenvs/venv/lib/python3.10/site- 
       packages/scrapy/settings/__init__.py", line 316, in setmodule
        module = import_module(module)
    File "/usr/local/lib/python3.10/importlib/__init__.py", line 126, in import_module
        return _bootstrap._gcd_import(name[level:], package, level)
    File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
    File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
    File "<frozen importlib._bootstrap>", line 992, in _find_and_load_unlocked
    File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
    File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
    File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
    File "<frozen importlib._bootstrap>", line 1004, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'scraperra'

我的项目结构如下:

- webapp_bullit
   - mysite
      - mysite
         - __init__.py
         - asgi.py
         - settings.py
         - urls.py
         - wsgi.py
      - scraperra
         - spiders
            - __init__.py
            - artistspider.py
         - __init__.py
         - items.py
         - other scrapy stuff....
      - website
         - migrations
         - static
         - more files and folders

我在 pythonanywhere 上的 wsgi 文件中有以下内容:

path = '/home/AZServices/webapp_bullit/mysite'
if path not in sys.path:
    sys.path.insert(0, path)



os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings'
os.environ["PATH"] = "/home/AZServices/.virtualenvs/venv/bin/" + os.pathsep + os.environ["PATH"]

(最后一行是解决找不到模块scrapy的错误)

如何正确找到模块 scraperra?

python scrapy pythonanywhere
© www.soinside.com 2019 - 2024. All rights reserved.