首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法使用Python3.2创建虚拟环境。侦探小说?Pip或setuptools或Python2.7?

无法使用Python3.2创建虚拟环境。侦探小说?Pip或setuptools或Python2.7?
EN

Stack Overflow用户
提问于 2016-03-03 19:54:00
回答 1查看 1.2K关注 0票数 3

我无法使用虚拟包装器正确地安装一个基于Python3.2的虚拟环境。我碰到了一个神秘的墙,现在我正在寻找更多的选择来解决我的侦探小说?困境。

一些背景

我首先尝试使用Python2.7中的pip1.5.6(系统的Python默认值)安装虚拟包装器。当我试图卸载/升级我的点对点时,我把它弄坏了。现在如果我试着:

代码语言:javascript
复制
$ pip 
    Traceback (most recent call last):
  File "/usr/local/lib/python3.2/dist-packages/distribute-0.6.28-py3.2.egg/pkg_resources.py", line 2816, in <module>
    working_set.require(__requires__)
  File "/usr/local/lib/python3.2/dist-packages/distribute-0.6.28-py3.2.egg/pkg_resources.py", line 690, in require
    needed = self.resolve(parse_requirements(requirements))
  File "/usr/local/lib/python3.2/dist-packages/distribute-0.6.28-py3.2.egg/pkg_resources.py", line 592, in resolve
    raise VersionConflict(dist,req) # XXX put more info here
pkg_resources.VersionConflict: (pip 7.1.2 (/usr/local/lib/python3.2/dist-packages), Requirement.parse('pip==1.5.6'))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/bin/pip", line 5, in <module>
    from pkg_resources import load_entry_point
  File "/usr/local/lib/python3.2/dist-packages/distribute-0.6.28-py3.2.egg/pkg_resources.py", line 2820, in <module>
    parse_requirements(__requires__), Environment()
  File "/usr/local/lib/python3.2/dist-packages/distribute-0.6.28-py3.2.egg/pkg_resources.py", line 588, in resolve
    raise DistributionNotFound(req)
pkg_resources.DistributionNotFound: pip==1.5.6

但是,我成功地安装了PIP3.2。

代码语言:javascript
复制
$ pip3.2 --version
pip 7.1.2 from /usr/local/lib/python3.2/dist-packages (python 3.2)

因此,我开始安装虚拟包装器,没有问题:

代码语言:javascript
复制
$ sudo pip3.2 install virtualenvwrapper

这里是Python3.2驻留的地方。

代码语言:javascript
复制
$ whereis python3.2.3 
whereis python3.2.3
python3.2: /usr/bin/python3.2 /etc/python3.2 /usr/lib/python3.2 /usr/bin/X11/python3.2 /usr/local/lib/python3.2 /usr/include/python3.2 /opt/Python-3.2/bin/python3.2 /usr/share/man/man1/python3.2.1.gz

这是我的虚拟版本:

代码语言:javascript
复制
$ virtualenv --version
14.0.6

误差

在制作虚拟版本之前,我修改了我的.bashrc

代码语言:javascript
复制
export WORKON_HOME=$HOME/.virtualenvs
export PROJECT_HOME=$HOME/admin/workspace
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
export VIRTUALENVWRAPPER_VIRTUALENV=/usr/local/bin/virtualenv
source /usr/local/bin/virtualenvwrapper.sh

在找到它之后(即来源~/..bashrc),我就无法启动一个虚拟环境。

代码语言:javascript
复制
$ mkvirtualenv --python=/usr/bin/python3.2 venv
Running virtualenv with interpreter /usr/bin/python3.2
New python executable in /home/admin/.virtualenvs/venv/bin/python3.2
Also creating executable in /home/admin/.virtualenvs/venv/bin/python
/usr/local/lib/python3.2/dist-packages/virtualenv-14.0.6-py3.2.egg/virtualenv_support/pip-8.0.2-py2.py3-none-any.whl/pip/_vendor/pkg_resources/__init__.py:87: UserWarning: Support for Python 3.0-3.2 has been dropped. Future versions will fail here.
Traceback (most recent call last):
  File "/usr/local/lib/python3.2/dist-packages/virtualenv-14.0.6-py3.2.egg/virtualenv.py", line 2304, in <module>
    main()
  File "/usr/local/lib/python3.2/dist-packages/virtualenv-14.0.6-py3.2.egg/virtualenv.py", line 705, in main
    symlink=options.symlink)
  File "/usr/local/lib/python3.2/dist-packages/virtualenv-14.0.6-py3.2.egg/virtualenv.py", line 924, in create_environment
    download=download,
  File "/usr/local/lib/python3.2/dist-packages/virtualenv-14.0.6-py3.2.egg/virtualenv.py", line 843, in install_wheel
    cert_data = pkgutil.get_data("pip._vendor.requests", "cacert.pem")
  File "/usr/lib/python3.2/pkgutil.py", line 573, in get_data
    loader = get_loader(package)
  File "/usr/lib/python3.2/pkgutil.py", line 461, in get_loader
    return find_loader(fullname)
  File "/usr/lib/python3.2/pkgutil.py", line 471, in find_loader
    for importer in iter_importers(fullname):
  File "/usr/lib/python3.2/pkgutil.py", line 427, in iter_importers
    __import__(pkg)
  File "/usr/local/lib/python3.2/dist-packages/virtualenv-14.0.6-py3.2.egg/virtualenv_support/pip-8.0.2-py2.py3-none-any.whl/pip/__init__.py", line 15, in <module>

如果我输入错误..。

代码语言:javascript
复制
$ workon
$

有趣的是,venv是在.virtualenvs中创建的

可能导致

在网络的其他地方阅读(我发现只有一个人有类似的问题),可以用以前版本的virtualenv解决(我尝试过没有成功),或者我使用了不正确的pip和/或virtualenv和/或组合。或者是我的Python2.7在后台乱搞。

更新: Setuptools

或者setuptools呢?显然它必须要做。在尝试PIP 1.5.6时,我得到了这个错误

代码语言:javascript
复制
 UserWarning: Support for Python 3.0-3.2 has been dropped. Future versions will fail here.
 warnings.warn(msg)

另一个更新:修复原始的pip

我设法通过以下方法修复了原始pip:

代码语言:javascript
复制
$ wget https://bootstrap.pypa.io/get-pip.py
$ sudo python get-pip.py
$ pip --version 
pip 8.0.3 from /usr/local/lib/python2.7/dist-packages (python 2.7)

更新:虚拟包装器不是!

在我自己的“谁不知道”的故事里,我想说虚拟包装没什么大不了的。在此:

代码语言:javascript
复制
$ virtualenv -p /usr/bin/python3.2 ~/.virtualenvs/venv32
Running virtualenv with interpreter /usr/bin/python3.2
New python executable in /home/admin/.virtualenvs/venv32/bin/python3.2
Also creating executable in /home/admin/.virtualenvs/venv32/bin/python
/usr/local/lib/python2.7/dist-packages/virtualenv_support/pip-8.0.2-py2.py3-none-any.whl/pip/_vendor/pkg_resources/__init__.py:87: UserWarning: Support for Python 3.0-3.2 has been dropped. Future versions will fail here.

但问题仍然存在。我还能做什么呢?

提前感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-04 17:51:29

如果要使用Python3.2,则必须使用pip <8和virtualenv < 14。另见https://virtualenv.pypa.io/en/latest/changes.html#id7

为什么需要使用古代Python3.2?您可以做的最好的事情是安装和使用更优秀的Python3.4。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35781745

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档