单个 Django 项目的两个虚拟环境?
Two virtual environments for a single Django project?
我有一个 Django 项目,我已经为它创建了一个虚拟环境,其中包含它所需的包。
现在为了开发,我正在寻找一种工具,在将其包含到我的项目之前,我可以在其中尝试一些代码。不久前我对 Jupyter 有了很好的体验,我认为再次使用这个工具会很好。
为了避免最小虚拟环境与 Jupyter 的依赖关系混乱,我复制了它并安装了 jupyter
和 django-extensions
。
在我的 settings.py
中,我有:
if os.environ.get("VENV_NAME") == "jupyter-sandbox":
INSTALLED_APPS += ['django_extensions']
这样我在没有django_extensions
的情况下仍然可以使用最小的虚拟环境。
除了我无法从支持 Jupyter 的虚拟环境中 运行 服务器这一事实外,它目前运行良好。这是因为我的项目使用了django-images
,而django在这个环境中(在sites-packages/django_images/migrations
中)找不到迁移文件。错误信息如下:
raise NodeNotFoundError(self.error_message, self.key, origin=self.origin)
django.db.migrations.exceptions.NodeNotFoundError: Migration core.0001_initial dependencies reference nonexistent parent node ('django_images', '0002_auto_20170710_2103')
创建符号链接以便两个虚拟环境共享相同的 django-images
迁移文件夹是否是个好主意,或者它会完全搞乱我的项目吗?
我对迁移还不是完全有信心,希望得到一些建议。
我认为这里的困惑是你应该做的。在任何标准项目中,您都应该有一个手工培养的项目依赖项列表。大多数 django 用户将该列表放入 requirements.txt
(通常推荐)或 setup.py
。你总是可以有多个需求:requirements-test.txt, requirements-dev.txt, 等等。在其他文件的顶部使用-r requirements.txt
到"import"其他需求:
# requirements.txt
django=1.11.3
然后...
# requirements-test.txt
-r requirements.txt
pytest
tox
最后...
# requirements-dev.txt
-r requirements-test.txt
ipython
pdbpp
jupyter
您的目标是在第一个文件中 运行 包含项目所需的任何内容。如果您的虚拟环境绰绰有余并不重要。此外,您应该使用 tox
之类的东西来测试您的 requirements.txt 是否确实包含它所需要的内容。希望对您有所帮助。
我有一个 Django 项目,我已经为它创建了一个虚拟环境,其中包含它所需的包。
现在为了开发,我正在寻找一种工具,在将其包含到我的项目之前,我可以在其中尝试一些代码。不久前我对 Jupyter 有了很好的体验,我认为再次使用这个工具会很好。
为了避免最小虚拟环境与 Jupyter 的依赖关系混乱,我复制了它并安装了 jupyter
和 django-extensions
。
在我的 settings.py
中,我有:
if os.environ.get("VENV_NAME") == "jupyter-sandbox":
INSTALLED_APPS += ['django_extensions']
这样我在没有django_extensions
的情况下仍然可以使用最小的虚拟环境。
除了我无法从支持 Jupyter 的虚拟环境中 运行 服务器这一事实外,它目前运行良好。这是因为我的项目使用了django-images
,而django在这个环境中(在sites-packages/django_images/migrations
中)找不到迁移文件。错误信息如下:
raise NodeNotFoundError(self.error_message, self.key, origin=self.origin)
django.db.migrations.exceptions.NodeNotFoundError: Migration core.0001_initial dependencies reference nonexistent parent node ('django_images', '0002_auto_20170710_2103')
创建符号链接以便两个虚拟环境共享相同的 django-images
迁移文件夹是否是个好主意,或者它会完全搞乱我的项目吗?
我对迁移还不是完全有信心,希望得到一些建议。
我认为这里的困惑是你应该做的。在任何标准项目中,您都应该有一个手工培养的项目依赖项列表。大多数 django 用户将该列表放入 requirements.txt
(通常推荐)或 setup.py
。你总是可以有多个需求:requirements-test.txt, requirements-dev.txt, 等等。在其他文件的顶部使用-r requirements.txt
到"import"其他需求:
# requirements.txt
django=1.11.3
然后...
# requirements-test.txt
-r requirements.txt
pytest
tox
最后...
# requirements-dev.txt
-r requirements-test.txt
ipython
pdbpp
jupyter
您的目标是在第一个文件中 运行 包含项目所需的任何内容。如果您的虚拟环境绰绰有余并不重要。此外,您应该使用 tox
之类的东西来测试您的 requirements.txt 是否确实包含它所需要的内容。希望对您有所帮助。