<p>从项目路径/opt/projects/myproject google/myproject运行以下命令,解决了属性入口点错误问题:</p>
<p>(假设project virtual env路径为:/opt/projects/myproject google/venv)</p>
<p>命令:(from path:/opt/projects/myproject google/myproject)</p>
<pre><code>export PYTHONPATH= # [Blank]
sudo pip install upgrade virtualenv setuptools
sudo rm -rf ../venv
sudo virtualenv ../venv
source ../venv/bin/activate
sudo pip install upgrade -r requirements.txt
deactivate
</code></pre>
<p>运行上述命令可升级虚拟环境和虚拟环境中的setuptools版本。位于路径:/opt/projects/myproject google/venv/lib/python2.7/site-packages。要测试setuptools是否已成功升级,请尝试以下命令:</p>
<ol>
<li><strong>命令</strong>:<code>sudo virtualenv version</code>
<strong>输出</strong>:<code>15.0.3</code></li>
<li><strong>命令</strong>:<code>echo $PYTHONPATH</code>
<strong>输出</strong>:[空白]</li>
<li><strong>命令</strong>:<code>python -c 'import pkg_resources; print(pkg_resources.__file__)'</code>
<strong>输出</strong>:<code>~/.local/lib/python2.7/site-packages/pkg_resources/__init__.pyc</code></li>
<li><strong>命令</strong>:<code>python -c 'import sys; print(sys.path)'</code>
<strong>输出</strong>:<code>['', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/usr/lib/python2.7/lib-old', '/usr/lib/python2.7/lib-dynload', '~/.local/lib/python2.7/site-packages', '/usr/local/lib/python2.7/dist-packages', '/opt/projects/myproject-google/myproject', '/usr/local/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages/PILcompat']</code></li>
<li><strong>命令</strong>:<code>ls /opt/projects/myproject-google/venv/lib/python2.7/site-packages</code>
<strong>输出</strong>:
<code>easy_install.py pip pkg_resources setuptools-27.2.0.dist-info wheel-0.30.0a0.dist-info
easy_install.pyc pip-8.1.2.dist-info setuptools wheel</code></li>
<li>{cdstrong>命令
<strong>输出</strong>:<code><cryptography.hazmat.backends.multibackend.MultiBackend object at 0x7ff83a838d50></code></li>
<li><strong>命令</strong><code>/opt/projects/myproject-google/venv/bin/python -c 'from cryptography.hazmat.backends import default_backend; print(default_backend())'</code>
<strong>输出</strong>
<code>
Traceback (most recent call last):
File "<string>", line 1, in <module>
ImportError: No module named cryptography.hazmat.backends
</code></li>
<li><strong>命令</strong>:<code>/opt/projects/myproject-google/venv/bin/python -c "import pkg_resources; print(pkg_resources.__file__)"</code>
<strong>输出</strong>:<code>/opt/projects/myproject-google/venv/local/lib/python2.7/site-packages/pkg_resources/__init__.pyc</code></li>
</ol>
<p>参考链接:<a href="https://github.com/pyca/cryptography/issues/3149" rel="nofollow">https://github.com/pyca/cryptography/issues/3149</a></p>
<p>这些步骤通过加密软件包和setuptools的更新版本完全解决了属性入口点问题。在</p>
<p><strong>更新</strong>截至2016年9月15日,加密团队再次添加了支持旧软件包的解决方案。
(参考链接:<a href="https://github.com/pyca/cryptography/issues/3150" rel="nofollow">https://github.com/pyca/cryptography/issues/3150</a>)</p>