我已经在我的电脑(mac)上安装了pip,我尝试了这些:
$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
........
为什么?
直接运行pip freeze
就足够了。您根本不需要通过python pip
或调整$PYTHONPATH
来运行它。
第一个代码段中的错误与您调用 python 的方式有关。您的命令被解释为python <script-filename> [script-arguments ...]
。你传入的文件名是 pip
,所以 python 在当前目录中查找一个名为 "pip" 的文件。该文件不存在,因此python崩溃并显示"找不到文件"错误。
python <full-path-to-script>
有效是因为...好吧,为什么不呢?Python 找到脚本并执行它。
正如评论中指出的那样,您不想弄乱PYTHONPATH。如果你想在同一台计算机上拥有不同版本的python,或者使用不同的安装包(或模块)安装python,你需要的是使用virtualenv
创建一个新的虚拟环境。
virtualenv /usr/local/custom-python/
然后,每当您想使用它或将软件包安装到其中时,只需执行
source /usr/local/custom-python/bin/activate
尝试使用: $export PYTHONPATH=$PYTHONPATH:/usr/local/lib/python2.7/site-packages
首先,你的代码可能会覆盖被弃用的原始 PYTHONPATH。其次,不要将 pip 包含在 python 路径中,因为 pip 是一个应该包含的包。
python /your/path/to/pip
这个点是一个文件夹,其中有一个__init__.py
。所以python可以读取它。但是如果你直接定义 PYTHONPATH 到 pip 文件夹,python 不会找到这个__init__.py
来表示 pip(参见关于 python 导入包的文档)
此外,我认为您可以将二进制点(可能位于/usr/bin)包含在您的路径中,以便您可以使用 $ pip command
直接调用它