我正在使用Django 1.11。
我在我的Django应用程序中使用了安装的django-bleach:
pip install django-bleach
以这种方式安装django-bleach时的lib文件夹:
drwxr-xr-x 3 breno breno 4,0K jan 7 18:30 bleach
drwxr-xr-x 2 breno breno 4,0K jan 7 18:30 bleach-2.1.2.dist-info
drwxr-xr-x 19 breno breno 4,0K jan 7 18:30 django
drwxr-xr-x 2 breno breno 4,0K jan 7 18:30 Django-2.0.1.dist-info
drwxr-xr-x 4 breno breno 4,0K jan 7 18:30 django_bleach
drwxr-xr-x 2 breno breno 4,0K jan 7 18:30 django_bleach-0.3.0.egg-info
-rw-r--r-- 1 breno breno 126 jan 7 18:18 easy_install.py
drwxr-xr-x 8 breno breno 4,0K jan 7 18:30 html5lib
drwxr-xr-x 2 breno breno 4,0K jan 7 18:30 html5lib-1.0.1.dist-info
drwxr-xr-x 11 breno breno 4,0K jan 7 18:18 pip
drwxr-xr-x 2 breno breno 4,0K jan 7 18:18 pip-9.0.1.dist-info
drwxr-xr-x 5 breno breno 4,0K jan 7 18:18 pkg_resources
drwxr-xr-x 2 breno breno 4,0K jan 7 18:18 pkg_resources-0.0.0.dist-info
drwxr-xr-x 2 breno breno 4,0K jan 7 18:30 __pycache__
drwxr-xr-x 4 breno breno 4,0K jan 7 18:30 pytz
drwxr-xr-x 2 breno breno 4,0K jan 7 18:30 pytz-2017.3.dist-info
drwxr-xr-x 5 breno breno 4,0K jan 7 18:18 setuptools
drwxr-xr-x 2 breno breno 4,0K jan 7 18:18 setuptools-32.3.1.dist-info
drwxr-xr-x 2 breno breno 4,0K jan 7 18:30 six-1.11.0.dist-info
-rw-r--r-- 1 breno breno 31K jan 7 18:30 six.py
drwxr-xr-x 3 breno breno 4,0K jan 7 18:30 webencodings
drwxr-xr-x 2 breno breno 4,0K jan 7 18:30 webencodings-0.5.1.dist-info
所以,当我使用它时,我已经修复了导入错误,我猜错误发生在Django 1.6或1.8+版本中。你可以看到here我做了什么。它起作用,我继续发展。
问题是:现在我正在尝试在Heroku中部署我的应用程序,但是会发生同样的错误并且必须修复导入。
所以,我认为我的存储库应该有requirements.txt和正确版本的django-bleach(我提交的那个),这样它会正常工作,对吗?
所以,我分叉了存储库,提交了修改并用这个文本创建了一个requirements.txt:
-e git+https://breno_asrm@bitbucket.org/breno_asrm/django-bleach.git#egg=django-bleach
然后我创建了一个新的虚拟环境并安装了
pip install -r requirements.txt
以下是此环境的lib文件夹的结果
drwxr-xr-x 3 breno breno 4,0K jan 7 18:15 bleach
drwxr-xr-x 2 breno breno 4,0K jan 7 18:15 bleach-2.1.2.dist-info
drwxr-xr-x 19 breno breno 4,0K jan 7 18:15 django
drwxr-xr-x 2 breno breno 4,0K jan 7 18:15 Django-2.0.1.dist-info
-rw-r--r-- 1 breno breno 51 jan 7 18:15 django-bleach.egg-link
-rw-r--r-- 1 breno breno 50 jan 7 18:15 easy-install.pth
-rw-r--r-- 1 breno breno 126 jan 7 18:14 easy_install.py
drwxr-xr-x 8 breno breno 4,0K jan 7 18:15 html5lib
drwxr-xr-x 2 breno breno 4,0K jan 7 18:15 html5lib-1.0.1.dist-info
drwxr-xr-x 11 breno breno 4,0K jan 7 18:14 pip
drwxr-xr-x 2 breno breno 4,0K jan 7 18:14 pip-9.0.1.dist-info
drwxr-xr-x 5 breno breno 4,0K jan 7 18:14 pkg_resources
drwxr-xr-x 2 breno breno 4,0K jan 7 18:14 pkg_resources-0.0.0.dist-info
drwxr-xr-x 2 breno breno 4,0K jan 7 18:15 __pycache__
drwxr-xr-x 4 breno breno 4,0K jan 7 18:15 pytz
drwxr-xr-x 2 breno breno 4,0K jan 7 18:15 pytz-2017.3.dist-info
drwxr-xr-x 5 breno breno 4,0K jan 7 18:14 setuptools
drwxr-xr-x 2 breno breno 4,0K jan 7 18:14 setuptools-32.3.1.dist-info
drwxr-xr-x 2 breno breno 4,0K jan 7 18:15 six-1.11.0.dist-info
-rw-r--r-- 1 breno breno 31K jan 7 18:15 six.py
drwxr-xr-x 3 breno breno 4,0K jan 7 18:15 webencodings
drwxr-xr-x 2 breno breno 4,0K jan 7 18:15 webencodings-0.5.1.dist-info
我认为它会像以前一样安装,只是添加我的修改,但事实并非如此。
例如,现在我的lib目录(env / lib / python3.5 / site-packages / )没有django_bleach文件夹。
那么,我怎么能以一种我不必修改自动创建的heroku virtualenv的方式修复它(如果可能的话)?
答案 0 :(得分:1)
看起来pip无法与您的用户breno_asrm
进行身份验证。由于存储库是公开的 - 只需删除您的用户名。
-e git+https://bitbucket.org/breno_asrm/django-bleach.git#egg=django-bleach
文件在哪里?
pip使用-e
从存储库安装的依赖项位于环境的另一个文件夹中。
来自pip的手册页:
-e, - 可编辑
从本地项目路径或VCS网址以可编辑模式(即setuptools"开发模式")安装项目。
看看venv_root/src
- 你会在那里看到django-bleach(在你的情况下是git存储库的克隆)。 venv_root/lib/python3.x/sites-packages/django-bleach.egg-link
包含可以找到来源的信息。使用less
或cat
进行检查。就我而言,它看起来像这样:
/tmp/env/src/django-bleach
.%
环境将按预期工作。
与pip的以下选项一起,所有这些都更有意义。这样,您可以在安装库时轻松处理库,但不一定位于您的环境中。
- src< dir>
将可编辑项目签入的目录。 virtualenv中的默认值为"< venvpath> / src"。全局安装的默认值为"<当前目录> / src"。