从不同的目录安装 python 模块

Install python module from diferrent directory

我找到了一个自定义的 http 请求 python 模块,它大大简化了我的任务。

具体这个:http://docs.python-requests.org/en/latest/

所以我从一个网站下载了这个包。提取存档并尝试安装模块。

当我从模块所在的目录使用以下命令时:

python setup.py install

它运行完美,模块已安装。

但我想知道如何从其他目录执行此操作?当我尝试这个时:

python /home/some_user/setup.py install 

我收到以下错误:

Traceback (most recent call last):
  File "/home/some_user/setup.py", line 32, in <module>
    with open('requests/__init__.py', 'r') as fd:
  File "/usr/lib64/python2.6/codecs.py", line 881, in open
    file = __builtin__.open(filename, mode, buffering)
IOError: [Errno 2] No such file or directory: 'requests/__init__.py'

我问是因为我需要将它远程安装到其他机器上。

在此先感谢您的帮助。

正如@Mikko Ohtamaa 所说,使用 pipvirtualenv 是个好主意。您也可以在模块所在的 python 中添加路径。有两种方式:sys.path and PYTHONPATH

回溯的第 2 行

with open('requests/__init__.py', 'r') as fd:

明确表示setup.py使用相对路径定位文件requests/__init__.py。如果您知道完整路径,远程机器将在何处找到模块,您可以调整 setup.py 以使用此绝对路径,而不是相对路径。 我建议查看所有 setup.py,因为它可能试图定位的不仅仅是 __init__.py

如果您不需要使用 pip 管理此包(因为您不是从 pip 存储库安装包),您可以将 kennethreitz-requests-a693753/requests 文件夹的内容复制到 /usr/lib/pythonX.X/site-packages/requests/,其中x.x 是你的 python 版本,比如 3.4

这样一来,软件包将不会被任何设置工具管理 - 您需要手动管理软件包,但您可以自由导入 requests 模块并使用它。

P.S。作为变体 - 创建 rpm/deb 包并快速跨系统分发