我刚刚开始使用 Python,需要一些指导。
我使用的是 Mac,但我安装了 python.org 构建的 python 以及原始的 Apple 安装。
我正在尝试加载一些第 3 方模块。当我在 IDLE 中或通过终端运行脚本时,一切正常。当我尝试将它作为 CRON 作业运行时,我收到一条错误消息,指出它找不到 3rd 方模块。
经过一番摸索,我一直相信它是 PYTHONPATH / sys.path。我创建了一个测试脚本来向我展示我的路径。那么,为什么当它通过终端窗口运行而不是直接作为 shell 脚本运行时,我会得到不同的路径呢?
我的两个问题是:
- 为什么它们不同?
- 如何获得直接 shell 进程来查找第 3 方模块?
这是我在终端中运行时的 sys.path 输出:
['/Library/Scripts',
'/Library/Scripts/$',
'/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7',
'/Library/Frameworks/Python.framework/Versions/7.3/lib/python27.zip',
'/Library/Frameworks/Python.framework/Versions/7.3/lib/python2.7',
'/Library/Frameworks/Python.framework/Versions/7.3/lib/python2.7/plat-darwin',
'/Library/Frameworks/Python.framework/Versions/7.3/lib/python2.7/plat-mac',
'/Library/Frameworks/Python.framework/Versions/7.3/lib/python2.7/plat-mac/lib-scriptpackages',
'/Library/Frameworks/Python.framework/Versions/7.3/lib/python2.7/lib-tk',
'/Library/Frameworks/Python.framework/Versions/7.3/lib/python2.7/lib-old',
'/Library/Frameworks/Python.framework/Versions/7.3/lib/python2.7/lib-dynload',
'/Library/Python/2.7/site-packages']
这是我在 shell 中运行时的 sys.path 输出(在这种情况下,我在 Applescript 中使用“执行 shell 脚本”步骤。
"['/Library/Scripts',
'/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python27.zip',
'/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7',
'/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-darwin',
'/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac',
'/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac/lib-scriptpackages',
'/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python',
'/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk',
'/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-old',
'/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload',
'/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/PyObjC',
'/Library/Python/2.7/site-packages']"