安装pip到Python 3.6文件夹而不是Python 2.7文件夹。

16 浏览
0 Comments

安装pip到Python 3.6文件夹而不是Python 2.7文件夹。

我在使用Ubuntu 18.04时,由于不了解虚拟环境的好处,导致我(一个新手)在各个地方都安装了pip包。我的.bash rc文件包含以下内容:

  #设置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:

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提示符中使用plumbum。我只使用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决定把plumbum放在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 
    from pip import main
ImportError: cannot import name main

0
0 Comments

问题的原因是pip安装到了python3.6文件夹中,而不是python2.7文件夹中。这是因为在您的机器上,pip安装到python3.6库是默认设置。

要解决这个问题,可以运行pip --version命令来查看pip将要安装软件包的位置。如果您想要安装python2.7的软件包,可以运行pip2 install plumbum --user命令。在此之前,我建议您先运行pip2 --version命令。

另外,我建议您也查看这个答案,以确保您理解pippip3pythonpython2python3之间的区别。

0
0 Comments

问题:将pip安装到Python 3.6文件夹而不是Python 2.7文件夹的原因以及解决方法

最初,用户尝试在Python 2.7环境下使用pip安装plumbum,但遇到了错误。错误消息显示无法导入pip的主要函数。用户还注意到,尽管系统将'python'指向Python 2.7,但只有在使用'pip'命令时才会将其发送到Python 3.6的库。用户还提到尝试使用'pip2'命令时遇到了类似的错误。

为了解决这个问题,有用户建议在调用Python解释器时使用'-m pip'选项来调用pip。用户尝试了这个建议,并成功地将plumbum安装到了Python 3.6文件夹中。

然而,用户还提到他希望将默认的pip版本更改为pip2,并解决pip2导入主要函数的错误。有用户在Stack Overflow上提供了一个有用的问题链接,链接中解释了如何更改默认的Ubuntu pip版本为pip2.7。

在讨论过程中,还有用户提到尝试使用'pip2 -V'命令时仍然遇到了相同的错误。另一个用户建议尝试在python解释器中使用'-m pip'选项来调用pip。

最后,用户决定将讨论转移到聊天室中继续讨论此问题。

总结起来,用户遇到了将pip安装到Python 3.6文件夹而不是Python 2.7文件夹的问题。解决方法是在调用Python解释器时使用'-m pip'选项来调用pip,并根据链接中提供的指南更改默认的pip版本为pip2.7。

0
0 Comments

问题出现的原因可能是在安装pip时选择了错误的Python版本。解决方法是重新安装pip,并指定正确的Python版本。

可以按照以下步骤解决问题:

1. 打开终端,并输入以下命令:

python2.7 -m pip install

2. 如果安装失败,需要通过下载get-pip.py文件来安装pip。可以通过以下链接下载get-pip.py文件:[https://pip.pypa.io/en/stable/installing/](https://pip.pypa.io/en/stable/installing/)

3. 下载完成后,在终端中切换到get-pip.py文件所在的目录,并输入以下命令:

python2.7 get-pip.py

4. 安装完成后,再次尝试使用以下命令进行安装:

python2.7 -m pip install

如果问题仍然存在,请告知我。

0