在虚拟环境中安装Python3包,我应该使用pip还是pip3?

3

我在Linux机器上同时安装了默认的Python 2和Python 3。我创建了一个虚拟环境来尝试在Python 3中使用pandas库。所以我运行了以下命令:

virtualenv -p python3 pandas_env

如果我在这个虚拟环境中输入python,它将进入标准的Python shell,并将Python 3作为默认版本。

(panda_env)$ python
Python 3.4.3 (default, Sep 14 2016, 12:36:27) 
[GCC 4.8.4] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 

为了安装ipython,我执行了以下步骤:

(panda_env)$ pip install ipython

现在,运行ipython时,默认使用Python2而不是3。

(panda_env)$ ipython
WARNING: Attempting to work in a virtualenv. If you encounter problems, please install IPython inside the virtualenv.
Python 2.7.6 (default, Jun 22 2015, 17:58:13) 
Type "copyright", "credits" or "license" for more information.

IPython 2.3.1 -- An enhanced Interactive Python.
?         -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help      -> Python's own help system.
object?   -> Details about 'object', use 'object??' for extra details.

警告提示要在virtualenv内安装ipython。我认为已经在环境内安装了ipython,为什么默认使用python2.x?

我如何正确地在virtualenv中安装ipython,并如何使ipython使用3.x而不是2.x?

此外,在virtualenv内安装软件包时应该使用pip还是pip3?


python $(which ipython)?我认为您可能没有成功在虚拟环境中安装ipython。 - Philip Tzou
1
非常感谢,那个方法起作用了,但是将来我应该在这个环境中使用 pip install <package> 还是 pip3 install <package> 呢?例如,我创建此环境以在 pandas 上进行工作。要安装 pandas 及其依赖模块,我应该使用 pip install pandas 还是 pip3 install pandas - arvindh
尝试使用 which pipwhich pip3 命令查看它们是否位于虚拟环境内。我认为它们应该都在里面,如果是这样的话,它们应该执行完全相同的操作。 - Thomas K
对于 (env)$ which pip,我得到了 ~/panda_env/bin/pip, 对于 (env)$ which pip3,我得到了 ~/panda_env/bin/pip3 - arvindh
请在此处发布 pip install ipython 的输出。如果您认为已经安装了它,请尝试 pip uninstall ipython 并在此处发布输出。 - Philip Tzou
显示剩余2条评论
2个回答

0

注意,对于Python > 3.3,建议使用pyvenv命令启动虚拟环境。自Python > 3.6起,此命令已被弃用,推荐使用python3 -m venv <environment name>(参见https://docs.python.org/3/library/venv.html)。

回答您的问题,根据此检查,我认为这并不重要:

# start enviroment
$ python3 -m venv test_env; source test_env/bin/activate

# check python version 
(test_env) $ python --version
Python 3.6.0

# check pip and pip3
(test_env) $ which pip
~/Documents/test_env/bin/pip
(test_env) $ which pip3
~/Documents/test_env/bin/pip3

# The pip commands are different, but if we check their versions they are the same and both appear to be using python3.
(test_env) $ pip -V
pip 9.0.1 from ~/test_env/lib/python3.6/site-packages (python 3.6)
(test_env) $ pip3 -V
pip 9.0.1 from ~/test_env/lib/python3.6/site-packages (python 3.6)

# In fact the binaries for pip and pip3 within the environment are identical as you can see with this.
(test_env) $ diff ~/Documents/test_env/bin/pip ~/Documents/test_env/bin/pip3

# Checking with ipython
(test_env) $ pip install ipython
(test_env) $ ipython 
Python 3.6.0 (default, Dec 24 2016, 08:01:42)
Type "copyright", "credits" or "license" for more information.

IPython 5.1.0 -- An enhanced Interactive Python.

-1

处理虚拟环境最简单的方法是下载Anaconda并使用Conda版本控制系统:

  • 适用于所有Python版本的相同方式工作
  • 将Python视为环境的一部分,就像其他软件包一样
  • 与环境相关的所有内容都存储在一个文件夹中
  • 如果某些内容停止工作,您可以查看修订历史记录并回滚到以前的环境版本

这并没有真正回答提问者的问题。此外,Anaconda可能适合您的需求,但在其他应用程序中可能会成为障碍。 - Ben
我从未遇到过可能会成为障碍的情况。你能举个例子吗? - simon
网站开发,我也曾经遇到过它干扰Homebrew的情况,使得Python无法移植 - 最好的方法是发送一个带有requirements.txt文件的代码,然后运行 pip install -r requirements.txt - Ben
为什么这个方法被认为是“最容易的”?它有什么比其他方法更容易的特点吗? - Bryan Oakley

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接