【问题标题】:Use a module installed by another user使用其他用户安装的模块
【发布时间】:2013-08-27 03:49:34
【问题描述】:

我在远程机器上运行这个 python 脚本,并请求pyfits,它在技术上安装在机器上,但 python 没有找到它。

我已经尝试通过sys.path.append('folder') 方法将安装它的假定目录添加到我的路径中(我也可以访问该文件夹)。但是还是找不到。

这里有一些思考过程来说明:

安装模块的用户在"/otheruser/code/pyfits" 拥有所有源代码,所以我尝试添加该文件夹或任何带有pyfits 的文件夹和一个初始化文件(我可以访问),但没有成功。

所以我的主要问题是:

我应该在别处寻找该模块吗? 我应该以 --myuser 身份再次安装这些模块吗?还是我应该弄乱网站包?如果是这样,是否会在其中添加模块?

【问题讨论】:

  • 您能否发布代码示例以修改 sys.path 并尝试加载模块,包括您正在使用的路径?对于可能出现的问题,我可以想到多种可能性,但这样做可能会排除一些可能性。

标签: python python-2.7 python-import settings


【解决方案1】:

根据 PyFITS 文档,看起来实际模块安装在顶级 PyFITS 安装目录下的 lib/pythonlib/python<version>/site-packages(取决于它们用于安装的标志)中。所以,通常你会想做这样的事情:

sys.path.append(r'/otheruser/code/pyfits/lib/python')

# Might be sys.path.append(r'/otheruser/code/pyfits/lib/python2.7/site-packages')
# or something similar

import numpy
import pyfits

如果您能够读取您附加的目录及其子目录的内容,那么您应该可以开始了。

但是,正如我在对您的原始问题的评论中提到的,您可能希望编辑您的问题以包含您用于执行此操作的实际代码,因为这样可能更容易猜到任何问题。

困难的来源可能是:

  1. 向您的 sys.path 添加一个不指向实际模块的目录。

  2. 模块目录中没有__init__.py 文件。

  3. 无权查看文件夹内容或阅读随附文件。

  4. Python 的字符串处理问题以某种方式搞砸了您的路径(例如在使用包含反斜杠的 Windows 路径时未使用原始模式和未充分转义反斜杠。)

  5. 在您导入之前覆盖了您的 sys.path。

  6. 一个错字。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-03
    • 2015-10-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多