我正在使用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中部署我的应用程序,但是会发生相同的错误,必须修复导入。
因此,我认为我的存储库应具有带有正确版本的django-bleach(具有我的提交的版本)的requirements.txt,这样它便可以正常工作,对吗?
因此,我分叉了存储库,提交了修改并使用以下文本创建了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(如果可能)?
最佳答案
点子似乎无法与您的用户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
检出可编辑项目的目录。 virtualenv中的默认值为“ / src”。全局安装的默认值为“ / src”。
关于python - Django漂白导入并部署到heroku错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48141625/