windows10
django 2.0.5
同じプロジェクト内でdjangoとscrapyを使用しています。
djangoのmodelなどにscrapyから接続するのにscrapyのsettings.pyに下記のコード書いています。
scrapy_app.settigs.py
python
1import os 2import sys 3import django 4 5sys.path.append('/Users/Jun/PycharmProjects/goscrapy') 6 7os.environ['DJANGO_SETTINGS_MODULE'] = 'config.settings' 8 9django.setup() 10
このままだと動くのですが、abspathを使って書こうとするとうまくいきません。
sys.path.append(os.path.dirname(os.path.abspath(''))) #os.path.dirname(os.path.abspath('')) #shellで確認 #'C:\Users\Jun\PycharmProjects' #configが見つからない sys.path.append(os.path.dirname(os.path.abspath('.'))) #os.path.dirname(os.path.abspath('')) #shellで確認 #'C:\Users\Jun\PycharmProjects' #configが見つからない sys.path.append(os.path.dirname(os.path.abspath('settings.py'))) #os.path.dirname(os.path.abspath('')) #shellで確認 #'C:\Users\Jun\PycharmProjects\goscrapy' #configが見つからない
一番下で合っていると思ったのですが、うまく動いてくれません。
sys.path.append('/Users/Jun/PycharmProjects/goscrapy')
こちらにもどすと動いてくれます。
なにか勘違いしているのでしょうか?
よろしくお願いいたします。
###追記 なにをしたいのか
scrapyをdjangoから操作したいので
How to use Scrapy with Django Application
こちらを参考にしているのですが、scrapyをデーモン化するscrapydにscrapyをデプロイする際に
sys.path.append('/Users/Jun/PycharmProjects/goscrapy')
だと上手くいきます。スクレイピングもできます。
それ以外だと上手くできません。
参考サイトの表記方法
scrapy_app/settings.py
import os import sys # DJANGO INTEGRATION sys.path.append(os.path.dirname(os.path.abspath('.'))) # Do not forget the change iCrawler part based on your project name os.environ['DJANGO_SETTINGS_MODULE'] = 'iCrawler.settings' # This is required only if Django Version > 1.8 import django django.setup() # DJANGO INTEGRATION ## Rest of settings are below ...
エラーの表示
(goscrapy) C:\Users\Jun\PycharmProjects\goscrapy\apps\scrapy_app>scrapyd-deploy Packing version 1533502405 Deploying to project "scrapy_app" in http://127.0.0.1:6800/addversion.json Server response (200): {"node_name": "DESKTOP-DJ3BDQ4", "status": "error", "message": "Traceback (most recent call last):\r\n File \"c:\users\jun\anaconda3\envs\ goscrapy\lib\runpy.py\", line 193, in _run_module_as_main\r\n \"__main__\", mod_spec)\r\n File \"c:\users\jun\anaconda3\envs\goscrapy \lib\runpy.py\", line 85, in _run_code\r\n exec(code, run_globals)\r\n File \"c:\users\jun\anaconda3\envs\goscrapy\lib\site-package s\scrapyd\runner.py\", line 40, in <module>\r\n main()\r\n File \"c:\users\jun\anaconda3\envs\goscrapy\lib\site-packages\scrapyd\ runner.py\", line 37, in main\r\n execute()\r\n File \"c:\users\jun\anaconda3\envs\goscrapy\lib\site-packages\scrapy\cmdline.py\", line 110, in execute\r\n settings = get_project_settings()\r\n File \"c:\users\jun\anaconda3\envs\goscrapy\lib\site-packages\scrapy\ \utils\project.py\", line 68, in get_project_settings\r\n settings.setmodule(settings_module_path, priority='project')\r\n File \"c:\users \jun\anaconda3\envs\goscrapy\lib\site-packages\scrapy\settings\__init__.py\", line 292, in setmodule\r\n module = import_module(modu le)\r\n File \"c:\users\jun\anaconda3\envs\goscrapy\lib\importlib\__init__.py\", line 126, in import_module\r\n return _bootstrap._g cd_import(name[level:], package, level)\r\n File \"<frozen importlib._bootstrap>\", line 994, in _gcd_import\r\n File \"<frozen importlib._boo tstrap>\", line 971, in _find_and_load\r\n File \"<frozen importlib._bootstrap>\", line 955, in _find_and_load_unlocked\r\n File \"<frozen imp ortlib._bootstrap>\", line 665, in _load_unlocked\r\n File \"<frozen importlib._bootstrap_external>\", line 678, in exec_module\r\n File \"<fr ozen importlib._bootstrap>\", line 219, in _call_with_frames_removed\r\n File \"C:\Users\Jun\PycharmProjects\goscrapy\apps\scrapy_app\sc rapy_app\settings.py\", line 26, in <module>\r\n django.setup()\r\n File \"c:\users\jun\anaconda3\envs\goscrapy\lib\site-packages\d jango\__init__.py\", line 19, in setup\r\n configure_logging(settings.LOGGING_CONFIG, settings.LOGGING)\r\n File \"c:\users\jun\anaconda 3\envs\goscrapy\lib\site-packages\django\conf\__init__.py\", line 56, in __getattr__\r\n self._setup(name)\r\n File \"c:\users\jun\ \anaconda3\envs\goscrapy\lib\site-packages\django\conf\__init__.py\", line 43, in _setup\r\n self._wrapped = Settings(settings_module) \r\n File \"c:\users\jun\anaconda3\envs\goscrapy\lib\site-packages\django\conf\__init__.py\", line 106, in __init__\r\n mod = impo rtlib.import_module(self.SETTINGS_MODULE)\r\n File \"c:\users\jun\anaconda3\envs\goscrapy\lib\importlib\__init__.py\", line 126, in imp ort_module\r\n return _bootstrap._gcd_import(name[level:], package, level)\r\n File \"<frozen importlib._bootstrap>\", line 994, in _gcd_imp ort\r\n File \"<frozen importlib._bootstrap>\", line 971, in _find_and_load\r\n File \"<frozen importlib._bootstrap>\", line 941, in _find_and _load_unlocked\r\n File \"<frozen importlib._bootstrap>\", line 219, in _call_with_frames_removed\r\n File \"<frozen importlib._bootstrap>\", line 994, in _gcd_import\r\n File \"<frozen importlib._bootstrap>\", line 971, in _find_and_load\r\n File \"<frozen importlib._bootstrap>\", l ine 953, in _find_and_load_unlocked\r\nModuleNotFoundError: No module named 'config'\r\n"}
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/08/06 04:53
2018/08/06 05:01
2018/08/06 05:48
2018/08/06 05:53
2018/08/06 05:56
2018/08/06 06:00 編集
2018/08/06 06:09
2018/08/06 06:15