2015-12-31 58 views
0
$ which pip                                      Thu Dec 31 17:56:58 EST 2015 
/usr/local/bin/pip 
$ which python                                      Thu Dec 31 18:01:09 EST 2015 
/usr/local/bin/python 
$ pip install flake8                                     Thu Dec 31 18:01:20 EST 2015 
Requirement already satisfied (use --upgrade to upgrade): flake8 in /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages 

......但是當我嘗試運行flake8時,它在我的終端中無法識別爲可執行文件。pip包無法全局訪問

這就像所有我的點子包。他們都不在全球工作。

我在做什麼錯?所有這些PATH廢話混淆了我。

回答

1

您需要將這些新程序添加到PATH中。我將假設您使用的是Linux。 在你的〜/ .profile文件,你要在下面的行添加

export PATH=$PATH:/PATH TO DIRECTORY OF EXECUTABLE 

注意,這不是遞歸。

如果您的pip安裝全部位於某些父文件夾中,我發現了一個腳本可能會使這更容易。

for d in /usr/local/bin/*/; do 
    PATH+=":$d" 
done 

這遍歷一些父文件夾,並將每個子文件夾到路徑。 :)

+0

我認爲某些Python包(如flake8)會自動添加爲像npm一樣的全局可執行文件。 因爲flake8不在'/ usr/local/bin /'中,而是'/ Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages',所以循環並不起作用。 。 – corysimmons

+1

哦,我只是舉了一個例子,你可以改變路徑來反映flake8的位置:) – Untitled123

+0

Gotcha。謝謝。 =) – corysimmons

0

通過首先安裝虛擬環境sudo pip install virtualenv,然後通過virtualenv myenv創建虛擬環境來創建虛擬環境。然後通過source myenv/bin/activate激活環境。然後您的命令提示符將會更改幷包含環境的名稱。

一旦你在環境中,你可以安裝你的包。這些軟件包只能在您的環境中使用。你可以通過sudo pip install flake8來安裝你的軟件包。安裝過程完成後,您可以通過pip freeze進行驗證。輸出將包括該環境中安裝的所有軟件包的名稱。

一旦你想停止使用環境,通過鍵入deactivate

+0

這不會使flake8成爲全局系統可執行文件。我希望能夠隨時隨地使用flake8,而不僅僅是在virtualenv內。 – corysimmons

0

我用魚殼牌停用,但基本上我不得不添加/Library/Frameworks/Python.framework/Versions/2.7/bin/PATH

我用的命令是set PATH /Library/Frameworks/Python.framework/Versions/2.7/bin/ $PATH