python库设置_关于macos:如何设置本地python库目录/ PYTHONPATH?

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

所以我跑:

easy_install --prefix=/usr/local/python/ pil

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

TEST FAILED:

/usr/local/python//lib/python2.5/site-packages

does NOT support .pth files error: bad

install directory or PYTHONPATH

You are attempting to install a

package to a directory that is not on

PYTHONPATH and which Python does not

read".pth" files from. The

installation directory you specified

(via --install-dir, --prefix, or the

distutils default setting) was:

/usr/local/python//lib/python2.5/site-packages

and your PYTHONPATH environment

variable currently contains:

''

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

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

和source它??,然后再试一次。

相同的错误消息。

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

import sys

print"

".join(sys.path)

产量:

/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。我已经纠正了这个问题,现在看到它出现在我从Python中打印出来的sys.path。但是,我仍然得到了上面提到的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?)

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

Traceback (most recent call last):

File"checkerboard.py", line 1, in

import Image, ImageDraw ImportError: No module named Image

当我使用find .检查/usr/local/python/下的内容时,我得到:

./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是元数据或帮助脚本)。安装在哪里?

我注意到这个:

To check the build, run the

selftest.py script.

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

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

你导出PYTHONPATH了吗? 将其设置为shell变量并没有帮助。 尝试export PYTHONPATH="$PYTHONPATH:/usr/local/python/lib/python2.5"并使用env检查它是否真正导出到环境中。

呵呵。 好的,我绝对需要建议,以便更好地理解shell / environment变量和env和export以及source之类的命令。 我很乐意接受建议。 这只是问题的一部分,但是......现在我已经遵循了Sven的建议,这条路似乎在sys.path中得到了认可,但我仍然从简易安装中得到'测试失败'的信息。 我会更新我的问题以反映这一点。

您在OS X中使用Apple提供的Python 2.5;它是一个框架构建,默认情况下,使用/Library/Python/2.5/site-packages作为已安装软件包的位置,而不是/usr/local。通常,您不需要使用OS X框架构建指定--prefix。还要注意Apple提供的OS X 10.5的setuptools(easy_install)也比Python本身的版本旧。

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

为什么在easy_install调用中指定--prefix?你试过了吗:

sudo easy_install pil

如果您只是尝试将PIL安装到默认位置,我认为easy_install可以找出正确的路径。 (显然,/usr/local/python不是......)

编辑:有人低估了这个答案,也许是因为它太简洁了

。我想,这就是我试图通过手机发布回答的结果。但它的要点是完全有效的,恕我直言:如果你使用--prefix来指定一个带有easy_install的自定义安装位置,你就会"做错了"。有可能使这个工作,但easy_install文档有一个关于自定义安装位置的部分,甚至没有提到这种可能性,除了作为虚拟python选项的小调整。如果你想安装到Mac上的自定义位置,我建议遵循OS X说明,--prefix似乎不适合这项工作。

我通常喜欢将默认安装附带的软件包/库与我安装的软件包/库分开,特别是如果它是我刚接触的东西,通常它是相当实用的。 如果事实证明Python不太实用,也许我会放弃这个想法。

@WestonC,根据您的需要,使用virtualenv可以更好地将"您的"Python模块与系统安装的模块分开。 如果从virtualenv中执行python setup.py install,绝大多数软件包都可以正常安装。 对于那些与virtualenvs不搭配的软件包(如PyQt),你几乎可以使用像本答案中描述的那样的hack来解决这个问题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 这个错误通常是由于没有正确安装 sentencepiece 库导致的。你可以尝试在命令行中使用以下命令安装 sentencepiece 库: ``` pip install sentencepiece ``` 如果你已经安装了 sentencepiece 库,那么可能是因为你的 Python 环境没有正确配置。你可以尝试在命令行中使用以下命令更新你的环境变量: ``` set PATH=%PATH%;C:\path\to\sentencepiece.dll ``` 其中 `C:\path\to\sentencepiece.dll` 是 sentencepiece 库的安装路径。如果你在 Linux 或 macOS 上运行 Python,则需要使用 `export` 命令而不是 `set` 命令来更新环境变量。 如果以上方法都无法解决问题,那么可能是由于你的操作系统不兼容 sentencepiece 库导致的。你可以尝试在其他操作系统上安装 sentencepiece 库,或者寻求其他解决方案。 ### 回答2: DLL load failed while importing _sentencepiece: 找不到指定的模块。这个错误通常出现在使用Python的某些库时,该库依赖于_sentencepiece模块,但是无法找到该模块。 该问题可能有以下几个原因: 1. 缺少_sentencepiece模块:在使用依赖_sentencepiece的库之前,需要确保已正确安装了_sentencepiece模块。可以在Python环境中运行`pip install sentencepiece`命令来安装它。 2. 模块路径问题:检查一下模块是否位于Python解释器可以找到的路径中。可能需要将模块所在的文件夹添加到PYTHONPATH环境变量中,或者将模块文件复制到Python的标准库路径下。 3. 操作系统兼容性问题:确保使用的安装包与操作系统兼容。有时,某些版本的模块可能只支持特定的操作系统或版本,因此尝试使用与操作系统匹配的正确版本。 4. 依赖关系问题:其他依赖库可能会干扰对_sentencepiece模块的导入。可以尝试更新相关库的版本或卸载冲突库来解决依赖关系问题。 如果尝试了上述解决方法后仍然无法解决问题,可以尝试在Python环境中重新安装_sentencepiece模块,并确保所使用的依赖库与所需模块兼容。另外,还可以查阅官方文档或在开发者社区寻求帮助以获取更详细的指导。 ### 回答3: "找不到指定的模块"是一个常见的DLL(动态链接库)加载错误。当我们导入_sentencepiece模块时,出现了该错误。这个错误的原因可能是我们系统中缺少了需要的DLL文件,或者DLL文件的路径设置不正确。 要解决这个问题,我们可以尝试以下几种方法: 1. 确保_sentencepiece模块的DLL文件存在并设置正确的路径。首先,我们需要确定模块所依赖的DLL文件名称。可以在相关文档或模块的源代码中查找此信息。然后,我们需要确保这些DLL文件已经存在于我们的系统中,并且它们的路径已正确设置。可以在系统环境变量中添加DLL文件的路径,或者将DLL文件复制到Python解释器的安装目录中。 2. 重新安装_sentencepiece模块。我们可以尝试重新安装模块来修复可能的缺失或损坏的文件。可以使用pip命令执行重新安装,如:pip install --upgrade _sentencepiece。 3. 更新Python和相关依赖项。某些情况下,我们可能因为使用旧版本的Python或相关依赖项导致DLL加载错误。因此,建议使用最新版本的Python和相关依赖项。 4. 检查操作系统的位数。DLL文件和Python解释器的位数必须匹配。例如,如果我们使用64位的Python解释器,那么所需的DLL文件也必须是64位版本的。 5. 在相关论坛或社区中寻求帮助。如果上述方法都无法解决问题,我们可以在相关的编程论坛或社区中提问,寻求其他人的帮助和建议。 总结: DLL load failed while importing _sentencepiece: 找不到指定的模块 是由于系统无法找到所需的DLL文件或DLL文件路径设置错误导致的加载错误。我们可以通过检查DLL文件的存在性和正确设置路径,重新安装模块,更新Python和相关依赖项,检查操作系统位数以及寻求社区帮助来解决该问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值