2017-05-29 95 views
0

我创建了一个Python 3 virtualenv中,像这样:PIP内的Python 3安装错误的virtualenv

mkproject -p python3 flowerid 

但是,当我尝试安装与PIP任何东西(这的virtualenv中)我得到这个错误:

cd flowerid 
pip install ipython 
Traceback (most recent call last): 
    File "/Users/nicolas/.virtualenvs/flowerid/bin/pip", line 11, in <module> 
    load_entry_point('pip==9.0.1', 'console_scripts', 'pip')() 
    File "/Users/nicolas/.virtualenvs/flowerid/lib/python3.6/site-packages/pkg_resources/__init__.py", line 560, in load_entry_point 
    return get_distribution(dist).load_entry_point(group, name) 
    File "/Users/nicolas/.virtualenvs/flowerid/lib/python3.6/site-packages/pkg_resources/__init__.py", line 2648, in load_entry_point 
    return ep.load() 
    File "/Users/nicolas/.virtualenvs/flowerid/lib/python3.6/site-packages/pkg_resources/__init__.py", line 2302, in load 
    return self.resolve() 
    File "/Users/nicolas/.virtualenvs/flowerid/lib/python3.6/site-packages/pkg_resources/__init__.py", line 2308, in resolve 
    module = __import__(self.module_name, fromlist=['__name__'], level=0) 
    File "/Users/nicolas/.virtualenvs/flowerid/lib/python3.6/site-packages/pip/__init__.py", line 28, in <module> 
    from pip.vcs import git, mercurial, subversion, bazaar # noqa 
    File "/Users/nicolas/.virtualenvs/flowerid/lib/python3.6/site-packages/pip/vcs/subversion.py", line 9, in <module> 
    from pip.index import Link 
    File "/Users/nicolas/.virtualenvs/flowerid/lib/python3.6/site-packages/pip/index.py", line 31, in <module> 
    from pip.wheel import Wheel, wheel_ext 
    File "/Users/nicolas/.virtualenvs/flowerid/lib/python3.6/site-packages/pip/wheel.py", line 6, in <module> 
    import compileall 
    File "/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/compileall.py", line 20, in <module> 
    from concurrent.futures import ProcessPoolExecutor 
    File "/Library/Python/2.7/site-packages/concurrent/futures/__init__.py", line 8, in <module> 
    from concurrent.futures._base import (FIRST_COMPLETED, 
    File "/Library/Python/2.7/site-packages/concurrent/futures/_base.py", line 357 
    raise type(self._exception), self._exception, self._traceback 
          ^
SyntaxError: invalid syntax 

在“期货”导入到“/Library/Python/2.7”之前,一切看起来都很正常。

我在创建virtualenv时试图设置“--no-site-packages”,但这并没有改变任何东西(它不应该是默认设置)。

我试着用pip3代替,同样的事情。

我试图与easy_install pip,同样的事情重新安装PIP(在virtualenv中)...

任何其他的想法?谢谢你的帮助。

注意:我通常使用Python 2.7 - 我在全局安装了很多Python 2.7包 - 也许这就是创建冲突的原因?

我在OSX El Capitan。

更新: 我的virtualenv似乎被激活 - 它开始使用我的virtualenv中的pip和python。而'哪个python'使用virtualenv的python。

(flowerid) [email protected]~/venv_projects/flowerid$ which python 
/Users/nicolas/.virtualenvs/flowerid/bin/python 
+1

你有没有任何机会忘了激活的virtualenv? –

+0

'File“/Library/Python/2.7/site-packages ....'注意__2.7__ _Python_版本。 – CristiFati

+0

您是否在运行pip时激活了virtualenv?什么'哪个python'显示(或者你使用的任何类似的命令)? – Nurjan

回答

0

好吧,我明白了。这是我的环境变量PYTHONPATH - 这搞砸了 - 告诉Python在Python 2.7库中查找......我在我的.bashrc中设置我的PYTHONPATH。

因此,解决办法是改变在激活时该PYTHONPATH和设置回停用原来的设置(它博格尔斯我的脑子有点,这是不是默认?)

所以在/Users/nicolas/.virtualenvs/flowerid/bin/activate加:

# Fix PYTHONPATH imports 
export OLD_PYTHONPATH="$PYTHONPATH" 
export PYTHONPATH="/Users/nicolas/.virtualenvs/flowerid/lib/python3.6/site-packages/" 

而且在/Users/nicolas/.virtualenvs/flowerid/bin/postdeactivate

# Reset PYTHONPATH to previous state 
export PYTHONPATH="$OLD_PYTHONPATH" 

此处,我发现了问题所在:virtualenv --no-site-packages and pip still finding global packages?

而且该解决方案: How do you set your pythonpath in an already-created virtualenv?

-1

尝试与此

raise Exception(self._exception), self._exception, self._traceback 
0

更换线/Library/Python/2.7/site-packages/concurrent/futures/_base.py

raise type(self._exception), self._exception, self._traceback 

尝试使用PIP3代替的点子命令。因为你使用的是python 3.

+0

我尝试过,同样的事情。它启动使用Python3,然后由于某种原因导入期货时切换到Python 2.7。 – Tickon

+0

你有没有尝试过运行这个,python文档中的例子: 'python3 -m pip install SomePackage' – MDK