我正在尝试在 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?