2015-12-31 57 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