Ubuntu 16.04 LTS • nginx 1.10.0 • Python 2.7.12 • Django-1.10.5
我已经完成了https://docs.djangoproject.com/en/1.10/intro/tutorial07/上的教程,这些教程都是使用 virtualenv 构建的
为了学习打包我的应用程序并重用它,我正在关注https://docs.djangoproject.com/en/1.10/intro/reusable-apps/上的教程,它不使用 virtualenv,但我无法得到它上班。
该应用程序称为“民意调查”。这是我为创建包所做的:
删除了我的应用程序中留下的所有 .pyc 文件
pip install setuptools & sudo pip install django
将我的(正常运行的)应用程序目录从项目目录移动到我的主目录
~$ mv -rfp 示例/民意调查 django-polls
在新的“django-polls”文件夹中,我创建了README.rst、LICENSE并修改了setup.py,由
注释掉:
\#'Programming Language :: Python :: 3',
\#'Programming Language :: Python :: 3.4',
\#'Programming Language :: Python :: 3.5',
创建MANIFEST.in(无文档)
构建包,没有问题:python setup.py sdist
到目前为止,一切似乎都正常工作。
我想在其他站点重新使用我的应用程序,但安装后无法完成迁移。
我安装了没有明显问题的新软件包:
pip install --user django-polls/dist/django-polls-0.1.tar.gz
为了完成安装,我:
在不同的站点/项目文件夹中的 settings.py中将“投票”添加到 INSTALLED_APPS
通过添加修改urls.py
url(r'^polls/', 包括('polls.urls')),
python manage.py 迁移
现在我得到一个错误:
File "/usr/lib/python2.7/importlib/__init__.py", line 37, in import_module
__import__(name)
ImportError: No module named polls
我想:也许是因为我用 --user 标志安装了民意调查,它对 virtualenv 不可用,所以我“工作”了 virtualenv 并重新安装民意调查:
pip install django-polls/dist/django-polls-0.1.tar.gz
一切正常,但是当我尝试迁移时遇到同样的错误:
File "/usr/lib/python2.7/importlib/__init__.py", line 37, in import_module
__import__(name)
ImportError: No module named polls
所以,我无法让我的应用程序在 virtualenv 中工作。
要获取民意调查的路径,我输入:
pip uninstall polls
并得到“无法卸载需求投票,未安装”
如果我在 virtualenv 中或者我已停用它,结果是相同的。
为了检查安装位置,我尝试使用和不使用 virtualenv 重新安装应用程序并获得:
Requirement already satisfied: pip in ./.local/lib/python2.7/site-packages
Requirement already satisfied: pip in ./Env/myenvironment/lib/python2.7/site-packages
因此,该应用程序安装在 virtualenv 内部和外部,但是当我进行迁移时它都丢失了。
我花了一整天的时间尝试各种路径和其他类似教程,但无法超越这一点。