2017-10-18 106 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