1
私は2つのDjangoプロジェクト、foo
とbar
を持っており、その構造を以下に示します。別のDjangoプロジェクトからサブプロセスを呼び出すことによってDjangoサーバを実行します
/tmp/foo
- foo
- __init__.py
- settings.py
- urls.py
- wsgi.py
/tmp/bar
- bar
- __init__.py
- settings.py
- urls.py
- wsgi.py
私はfoo
の環境でpython3 /tmp/bar/manage.py runserver
を実行しようとしたが失敗しました。
$ python3 /tmp/foo/manage.py shell
>>> import subprocess
>>> subprocess.call(['python3', '/tmp/bar/manage.py', 'runserver'])
Traceback (most recent call last):
File "/tmp/bar/manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "/usr/local/lib/python3.4/dist-packages/django/core/management/__init__.py", line 353, in execute_from_command_line
utility.execute()
File "/usr/local/lib/python3.4/dist-packages/django/core/management/__init__.py", line 302, in execute
settings.INSTALLED_APPS
File "/usr/local/lib/python3.4/dist-packages/django/conf/__init__.py", line 55, in __getattr__
self._setup(name)
File "/usr/local/lib/python3.4/dist-packages/django/conf/__init__.py", line 43, in _setup
self._wrapped = Settings(settings_module)
File "/usr/local/lib/python3.4/dist-packages/django/conf/__init__.py", line 99, in __init__
mod = importlib.import_module(self.SETTINGS_MODULE)
File "/usr/lib/python3.4/importlib/__init__.py", line 109, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 2254, in _gcd_import
File "<frozen importlib._bootstrap>", line 2237, in _find_and_load
File "<frozen importlib._bootstrap>", line 2212, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 321, in _call_with_frames_removed
File "<frozen importlib._bootstrap>", line 2254, in _gcd_import
File "<frozen importlib._bootstrap>", line 2237, in _find_and_load
File "<frozen importlib._bootstrap>", line 2224, in _find_and_load_unlocked
ImportError: No module named 'foo'
1
どうすれば解決できますか?
を実際に私がそうしたい私は、これはなるだろう願っています(foo' 'からコマンドを送信することにより、' bar'のモデルを操作することですもっと意味がある) – amigcamel
これはちょっとしたことですが、IMHOではHTTP API経由でコマンドを送信する方が便利です。あなたは上記の解決策を試しましたか?それは動作しましたか?そうでない場合、何が起こったのですか? –
すべてがうまく動作します、ありがとう。しかし、 'os.environ ['DJANGO_SETTINGS_MODULE']'を変更すると、副作用はありますか?私はまだ元の環境を保持したい。 – amigcamel