【问题标题】:pip installing to python 3.6 folder instead of python 2.7 folderpip 安装到 python 3.6 文件夹而不是 python 2.7 文件夹
【发布时间】:2019-08-22 23:41:28
【问题描述】:

我(一个菜鸟)使用的 Ubuntu 18.04 在我了解虚拟环境的好处之前,到处都安装了 pip 软件包。我的 .bash rc 文件包含:

  #setup for python
    export PYTHONPATH=/home/stefan/.local/
    export PYTHONPATH=/usr/local${PYTHONPATH:+:${PYTHONPATH}}
    export PYTHONPATH=/home/stefan/caffe/python:$PYTHONPATH
    LD_LIBRARY_PATH=/usr/local/lib${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

无论如何,因为我一直忘记哪些虚拟环境有哪些软件包,所以我决定像这样使用 pip install --user:

pip install plumbum --user

给了

~/.local/lib/python3.6/site-packages$ ls
plumbum  plumbum-1.6.7.dist-info

同时

~/.local/lib/python2.7/site-packages$ ls
clonevirtualenv.py       stevedore
clonevirtualenv.pyc      stevedore-1.30.1.dist-info
imageio                  virtualenv-16.4.3.dist-info
imageio-2.5.0.dist-info  virtualenv_clone-0.5.1.dist-info
pbr                      virtualenv.py
pbr-5.1.3.dist-info      virtualenv.pyc
pip                      virtualenv_support
pip-19.0.3.dist-info     virtualenvwrapper
six-1.12.0.dist-info     virtualenvwrapper-4.8.4.dist-info
six.py                   virtualenvwrapper-4.8.4-nspkg.pth
six.pyc

不用说,我不能在 python2 提示符下使用铅。我只使用 pip install 所以我 为了让事情更混乱,我有一个名为 pyCV3 的虚拟环境,它有

~/Envs/pyCV3/lib/python2.7/site-packages$ ls
backports
backports.functools_lru_cache-1.5.dist-info
backports.shutil_get_terminal_size-1.0.0.dist-info
cloudpickle
cloudpickle-0.8.1.dist-info
concurrent
cv2.so
cycler-0.10.0.dist-info
cycler.py
cycler.pyc
dask
dask-1.1.4.dist-info
dateutil
decorator-4.4.0.dist-info
decorator.py
decorator.pyc
easy_install.py
easy_install.pyc
enum
enum34-1.1.6.dist-info
futures-3.2.0.dist-info
imageio
imageio-2.5.0.dist-info
IPython
ipython-5.8.0.dist-info
ipython_genutils
ipython_genutils-0.2.0.dist-info
kiwisolver-1.0.1.dist-info
kiwisolver.so
matplotlib
matplotlib-2.2.4.dist-info
matplotlib-2.2.4-py2.7-nspkg.pth
mpl_toolkits
networkx
networkx-2.2.dist-info
numpy
numpy-1.16.2.dist-info
pathlib2
pathlib2-2.3.3.dist-info
pexpect
pexpect-4.6.0.dist-info
pickleshare-0.7.5.dist-info
pickleshare.py
pickleshare.pyc
PIL
Pillow-5.4.1.dist-info
pip
pip-19.0.3.dist-info
pkg_resources
pkg_resources-0.0.0.dist-info
_posixsubprocess32.so
prompt_toolkit
prompt_toolkit-1.0.15.dist-info
ptyprocess
ptyprocess-0.6.0.dist-info
pygments
Pygments-2.3.1.dist-info
pylab.py
pylab.pyc
pyparsing-2.3.1.dist-info
pyparsing.py
pyparsing.pyc
python_dateutil-2.8.0.dist-info
pytz
pytz-2018.9.dist-info
PyWavelets-1.0.2.dist-info
pywt
scandir-1.10.0.dist-info
scandir.py
scandir.pyc
_scandir.so
scikit_image-0.14.2.dist-info
scikit_learn-0.20.3.dist-info
scipy
scipy-1.2.1.dist-info
setuptools
setuptools-40.8.0.dist-info
shutil_backports
simplegeneric-0.8.1.dist-info
simplegeneric.py
simplegeneric.pyc
six-1.12.0.dist-info
six.py
six.pyc
skimage
sklearn
subprocess32-3.5.3.dist-info
subprocess32.py
subprocess32.pyc
tlz
toolz
toolz-0.9.0.dist-info
traitlets
traitlets-4.3.2.dist-info
wcwidth
wcwidth-0.1.7.dist-info
wheel
wheel-0.33.1.dist-info

早些时候我也做了一个“sudo pip install”,所以我的系统 python 文件夹看起来像这样

~/.local/lib/python2.7/site-packages$ ls
clonevirtualenv.py       stevedore
clonevirtualenv.pyc      stevedore-1.30.1.dist-info
imageio                  virtualenv-16.4.3.dist-info
imageio-2.5.0.dist-info  virtualenv_clone-0.5.1.dist-info
pbr                      virtualenv.py
pbr-5.1.3.dist-info      virtualenv.pyc
pip                      virtualenv_support
pip-19.0.3.dist-info     virtualenvwrapper
six-1.12.0.dist-info     virtualenvwrapper-4.8.4.dist-info
six.py                   virtualenvwrapper-4.8.4-nspkg.pth
six.pyc

/.local/lib/python3.6/site-packages$ ls
plumbum  plumbum-1.6.7.dist-info

所以我不知道为什么 pip install 决定将铅放入 3.6 而不是 2.7。有人可以启发我吗? (也许给我一个关于如何清理我的烂摊子的提示)。

我怀疑这与我的 linux 总是使用 pip3 的事实有关

~/.local/lib/python3.6/site-packages$ pip3 --version
pip 19.0.3 from /usr/local/lib/python3.6/dist-packages/pip (python 3.6)

~/.local/lib/python3.6/site-packages$ pip --version
pip 19.0.3 from /usr/local/lib/python3.6/dist-packages/pip (python 3.6)


~/.local/lib/python2.7/site-packages$ pip --version
pip 19.0.3 from /usr/local/lib/python3.6/dist-packages/pip (python 3.6)

~/.local/lib/python2.7/site-packages$ pip3 --version
pip 19.0.3 from /usr/local/lib/python3.6/dist-packages/pip (python 3.6)

我知道我的 /usr/bin 中有一个 pip2,但 linux 不喜欢它

/usr/bin$ pip2 --version
Traceback (most recent call last):
  File "/usr/bin/pip2", line 9, in <module>
    from pip import main
ImportError: cannot import name main

【问题讨论】:

    标签: python package


    【解决方案1】:

    pip安装到你的python3.6库的原因是因为它是你机器上pip安装的默认库。

    pip --version 将返回 pip 安装包的位置。 如果要安装python2.7的包,运行pip2 install plumbum --user

    我还建议事先运行pip2 --version

    编辑:

    我建议你也看看this的答案,以确保你了解pippip3pythonpython2python3之间的区别

    【讨论】:

      【解决方案2】:

      尝试在终端 'python2.7 -m pip install' 上写入,如果它失败 install pip with a get-pip.py 文件,然后重试,如果它不起作用,请告诉我

      【讨论】:

        【解决方案3】:

        一般而言,您可以使用./your/path/python -m pip install plumbum --user 调用您的 Python 解释器,以使用正确的 pip。

        【讨论】:

        • pip --version pip 19.0.3 来自 /usr/local/lib/python3.6/dist-packages/pip (python 3.6) stefan@4930:~/Envs/pyCV3/bin$ pip2 install plumbum --user Traceback(最近一次调用最后一次):文件“/usr/bin/pip2”,第 9 行,在 from pip import main ImportError: cannot import name main
        • python2.7 -m pip install plumbum --user
        • 将铅放入~/.local/lib/python2.7/site-packages
        • 试试~/Envs/pyCV3/bin/python -m pip install plumbum --user
        • 好吧,我的机器认为'python'指的是python2.7
        猜你喜欢
        • 1970-01-01
        • 2015-05-08
        • 2017-05-10
        • 2013-03-08
        • 1970-01-01
        • 2012-09-30
        • 1970-01-01
        • 2011-10-31
        相关资源
        最近更新 更多