Django-bleach导入并部署到heroku错误

时间:2018-01-07 21:15:18

标签: python django heroku

我正在使用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的方式修复它(如果可能的话)?

1 个答案:

答案 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包含可以找到来源的信息。使用lesscat进行检查。就我而言,它看起来像这样:

/tmp/env/src/django-bleach
.% 

环境将按预期工作。

与pip的以下选项一起,所有这些都更有意义。这样,您可以在安装库时轻松处理库,但不一定位于您的环境中。

  

- src< dir>

     

将可编辑项目签入的目录。 virtualenv中的默认值为"< venvpath> / src"。全局安装的默认值为"<当前目录> / src"。