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

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


该环境将按预期工作。

结合以下pip选项,所有这些都变得更加合理。这样,您可以在安装了库但不必将其放置在环境中时轻松地对其进行处理。


  --src
  
  检出可编辑项目的目录。 virtualenv中的默认值为“ / src”。全局安装的默认值为“ / src”。

关于python - Django漂白导入并部署到heroku错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48141625/

10-10 11:07
查看更多