如何设置本地python库目录/ PYTHONPATH?

Wes*_*n C 6 python macos path easy-install python-imaging-library

在尝试编写今天使用PIL的Python脚本的过程中,我发现我似乎没有在我的本地计算机上使用它(OS X 10.5.8,默认2.5 Python安装).

所以我跑:

easy_install --prefix=/usr/local/python/ pil
Run Code Online (Sandbox Code Playgroud)

它有点抱怨/usr/local/python/lib/python2.5/site-packages尚未存在,所以我创建它,然后再试一次,得到这个:

测试失败:/usr/local/python//lib/python2.5/site-packages不支持.pth文件错误:错误的安装目录或PYTHONPATH

您正在尝试将程序包安装到不在PYTHONPATH上的目录以及哪些Python不从中读取".pth"文件.您指定的安装目录(通过--install-dir, - prefix或distutils默认设置)是:

/usr/local/python//lib/python2.5/site-packages
Run Code Online (Sandbox Code Playgroud)

并且您的PYTHONPATH环境变量当前包含:

''
Run Code Online (Sandbox Code Playgroud)

好吧,公平 - 我没有做任何事情来设定路径.所以我给〜/ .bash_profile添加了一个快速行:

PYTHONPATH = "$ PYTHONPATH:/usr/local/python/lib/python2.5"

source它,然后再试一次.

相同的错误消息.

考虑到PYTHONPATH显然是固定的,这有点好奇; 我可以echo $PYTHONPATH回去:/usr/local/python/lib/python2.5.我决定从里面查看包含路径的样子:

import sys
print "\n".join(sys.path)
Run Code Online (Sandbox Code Playgroud)

产量:

/System/Library/Frameworks/Python.framework/Versions/2.5/lib/python25.zip /System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5 /System/Library/Frameworks/Python.framework /Versions/2.5/lib/python2.5/plat-darwin /System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/plat-mac /System/Library/Frameworks/Python.framework/Versions /2.5/lib/python2.5/plat-mac/lib-scriptpackages/System/Library/Frameworks/Python.framework/Versions/2.5/Extras/lib/python/System/Library/Frameworks/Python.framework/Versions/2.5 /lib/python2.5/lib-tk /System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/lib-dynload/Library/Python/2.5/site-packages/System/Library/Frameworks /Python.framework/Versions/2.5/Extras/lib/python/PyObjC

从中/usr/local/python/yadda/yadda尤其缺失.

不知道我应该在这做什么.如何让python将此位置识别为包含路径?

UPDATE

正如Sven Marnach所说,我忽略了出口PYTHONPATH.我已经纠正了这个问题,现在看到它出现在我sys.path从Python中打印出来的时候.但是,我仍然得到了TEST FAILED上面提到的错误消息,只是使用了我的新PYTHONPATH环境变量.

因此,我尝试将其更改/usr/local/python/lib/python2.5/usr/local/python/lib/python2.5/site-packages,easy_install再次导出和运行相同的命令.这导致一个全新的结果,起初看起来像成功(但不是):

Creating /usr/local/python/lib/python2.5/site-packages/site.py
Searching for pil
Reading http://pypi.python.org/simple/pil/
Reading http://www.pythonware.com/products/pil
Reading http://effbot.org/zone/pil-changes-115.htm
Reading http://effbot.org/downloads/#Imaging
Best match: PIL 1.1.7
Downloading http://effbot.org/media/downloads/PIL-1.1.7.tar.gz
Processing PIL-1.1.7.tar.gz
Running PIL-1.1.7/setup.py -q bdist_egg --dist-dir /var/folders/XW/XWpClVq7EpSB37BV3zTo+++++TI/-Tmp-/easy_install-krj9oR/PIL-1.1.7/egg-dist-tmp--Pyauy
--- using frameworks at /System/Library/Frameworks
[snipped: compiler warnings]
--------------------------------------------------------------------
PIL 1.1.7 SETUP SUMMARY
--------------------------------------------------------------------
version       1.1.7
platform      darwin 2.5.1 (r251:54863, Sep  1 2010, 22:03:14)
              [GCC 4.0.1 (Apple Inc. build 5465)]
--------------------------------------------------------------------
--- TKINTER support available
--- JPEG support available
--- ZLIB (PNG/ZIP) support available
*** FREETYPE2 support not available
*** LITTLECMS support not available
--------------------------------------------------------------------
To add a missing option, make sure you have the required
library, and set the corresponding ROOT variable in the
setup.py script.

To check the build, run the selftest.py script.
zip_safe flag not set; analyzing archive contents...
Image: module references __file__
No eggs found in /var/folders/XW/XWpClVq7EpSB37BV3zTo+++++TI/-Tmp-/easy_install-krj9oR/PIL-1.1.7/egg-dist-tmp--Pyauy (setup script problem?)
Run Code Online (Sandbox Code Playgroud)

再次,这看起来不错,但是当我去运行我的脚本时:

回溯(最近一次调用最后一次):
文件"checkerboard.py",第1行,导入图像,ImageDraw ImportError:没有名为Image的模块

当我检查现在正在/usr/local/python/使用什么时find .,我得到:

./lib ./lib/python2.5 ./lib/python2.5/site-packages ./lib/python2.5/site-packages/site.py ./lib/python2.5/site-packages/site. PYC

所以...没有任何模块外观(我假设site.py和site.pyc是元数据或帮助脚本).安装在哪里?

我注意到这个:

要检查构建,请运行selftest.py脚本.

但是真的不知道那是什么.

我还注意到"没有发现鸡蛋"的消息.这些提示中的任何一个?

Ned*_*ily 4

您在 OS X 中使用 Apple 提供的 Python 2.5;它是一个框架构建,默认情况下用作/Library/Python/2.5/site-packages安装包的位置,而不是/usr/local. 通常您不需要指定--prefixOS X 框架构建。另请注意, Apple 随 OS X 10.5 提供的setuptools( easy_install) 也相当旧,Python 本身的版本也是如此。

也就是说,PIL在 OS X 尤其是 OS X 10.5 上完全正确地安装并不是特别简单。在档案或其他地方搜索提示和/或二进制包。特别是如果您计划使用 MySQL 或 Django 等其他模块,我的建议是使用MacPorts等包管理器安装所有内容(Python 和 PIL) 。