我已经在我的计算机上安装了pip(mac),我尝试了这些:
$export PYTHONPATH=/usr/local/lib/python2.7/site-packages/pip
$python pip freeze list
/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python: can't open file 'pip': [Errno 2] No such file or directory
它不起作用,但如果我将这条完整路径指定为python命令,它就可以工作:
$python /usr/local/lib/python2.7/site-packages/pip freeze list
ant==0.1.0
appnope==0.1.0
astroid==1.4.8
backports-abc==0.5
........
为什么?
答案 0 :(得分:1)
正如评论中指出的那样,你不想乱用PYTHONPATH。如果你想在同一台计算机上安装不同版本的python,或者想要使用不同安装包(或模块)的python安装,你需要使用virtualenv
创建一个新的virtualenv。
virtualenv /usr/local/custom-python/
然后,只要您想使用它或将软件包安装到其中,只需执行
即可source /usr/local/custom-python/bin/activate
答案 1 :(得分:1)
直接运行pip freeze
就足够了。您不应该通过python pip
或根据$PYTHONPATH
调整它来运行它。
第一个代码段中的错误与调用python的方式有关。您的命令被解释为python <script-filename> [script-arguments ...]
。您传入的文件名是pip
,因此python在当前目录中查找名为“pip”的文件。该文件不存在,因此python崩溃时出现“找不到文件”错误。
python <full-path-to-script>
有效,因为......好吧,为什么不呢? Python找到脚本并执行它。
答案 2 :(得分:1)
尝试使用:
$export PYTHONPATH=$PYTHONPATH:/usr/local/lib/python2.7/site-packages
首先,您的代码可能会涵盖不推荐使用的orignal PYTHONPATH。其次,不要将pip包含到python路径中,因为pip是应该包含的包。
python /your/path/to/pip
此点是一个__init__.py
的文件夹。所以python可以读取它。但是如果直接将pYTHONPATH定义为pip文件夹,python将找不到这个__init__.py
来表示pip(参见有关python import packge的文档)
此外,我认为您可以将二进制点(可能位于/ usr / bin)包含在您的路径中,以便您可以使用$ pip command