2017-10-18 68 views
0

我正在使用Kali dist,所以我已经安装了Python 2.7,3.5和3.6。命令'python'和'pip'与Python 2.7相关联。但'python3'使用Python 3.6,而pip3正在为Python 3.5安装软件包。
当我试图创建一个VENV:如何使用python 3.6而不是python 3.5使用pip3?

pip3 -p python3.6 virtualenv myenv 

我得到了一个错误:

no such option: -p 

我怎样才能PIP3与Python 3.6,而不是3.5 Python的关联?

+0

可能重复[如何使用python命令运行不同版本的python的pip?](https://stackoverflow.com/questions/34803040/how-to-run-pip-of-different-version-of-python-using-python-command ) – phd

+0

'-p python3。6'应该是virtualenv的参数不是pip3 – jgritty

+1

如果其中一个答案解决了您的问题,请标记它。 –

回答

2

您的pip版本与您的Python版本有着千丝万缕的联系,您无法告诉pip“使用此Python”或“使用该Python”。如果您的pip3(使用Python 3.X)和python3(Python 3.Y)之间的版本不匹配,这意味着您的问题是Python的多个重叠分布以及奇怪配置的$PATH

如果您运行pip3 --version它会告诉您与pip3关联的site-packages目录和Python版本号。

如果您运行python3,然后执行>>> import site; site.getsitepackages(),则应打印您的python3正在使用的站点包目录。

如果这些不匹配,就会出现路径问题,您需要发布更多关于您正在使用的操作系统,您使用的Python发行版以及安装方式的更多信息。

更新/评论摘要主题:原始海报的发行版捆绑Python 3.6与自行安装的Python 3.5一起安装。他们的路径上的pip3与Python 3.6(系统Python)相关联,而命令python3与Python 3.5(他们自己安装的Python)相关联。分辨率:

运行which -a python3找到Python 3.5。将Python 3.5的位置添加到您的$PATH。 (做它在.profile.bash_profile,使其永久化。)

+1

'pip3 --version' 'pip 9.0.1 from/usr/lib/python3/dist-packages(python 3.5)' '>>> import site; site.getsitepackages()' '['/usr/local/lib/python3.6/site-packages']' – Lorkes

+0

是的,你的pip3和python二进制文件是不匹配的。你如何以及为什么要安装两个版本的Python 3?您应该卸载两个版本的Python 3并重新安装其中一个。请更新您的文章,提供有关如何安装这两个版本的Python的信息,以便我可以帮助您了解如何卸载它们。 – charlesreid1

+0

我不太清楚,但我认为Python 3.6是由dist和Python 3.5构建的,我自己安装了。我认为是这样,因为我读过内置版本没有pip – Lorkes

0

首先发现蟒蛇的正确版本要使用:

$ which -a python3.6 
/usr/bin/python3.6 

然后直接调用蟒蛇该实例,例如

$ /usr/bin/python3.6 -m venv 
usage: venv [-h] [--system-site-packages] [--symlinks | --copies] [--clear] [--upgrade] [--without-pip] [--prompt PROMPT] ENV_DIR [ENV_DIR ...] 
venv: error: the following arguments are required: ENV_DIR 

接下来,pip不会创建虚拟环境。模块venv确实。推荐使用方法请阅读the venv documentation。在你的情况,你可能想:

$ /usr/bin/python3.6 -m venv myenv 
+0

'$ which -a python3.6 bash:-a:command not found ' – Lorkes

+0

'哪个-a'可以在macOS和Linux上运行。你在使用哪种操作系统? –

+0

正如我在后Kali Linux写的 – Lorkes

0

可以明确地运行pip3脚本与特定的Python版本,用适当的python3.X命令前缀是:

[email protected]:~> pip3 --version 
pip 9.0.1 from /usr/lib/python3/dist-packages (python 3.6) 
[email protected]:~> python3.5 $(which pip3) --version 
pip 9.0.1 from /usr/lib/python3/dist-packages (python 3.5) 
+0

'pip3 -V pip 9.0.1 from/usr/lib/python3/dist-软件包(python 3.5) ' 'python3.6 $(which pip3)--version' 'Traceback(最近调用最后一次):' 'File“/ usr/bin/pip3”,第9行,在' '从pip导入主'' 'ModuleNotFoundError:没有名为'pip'的模块 ' – Lorkes