从diferrent目录

时间:2015-05-06 11:13:40

标签: python module python-2.x

我找到了一个自定义的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'

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

提前感谢您的帮助。

3 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

追溯的第二行

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

明确指出setup.py使用相对路径来定位文件requests/__init__.py。如果您知道远程计算机将找到模块的完整路径,则可以调整setup.py以使用此绝对路径,而不是相对路径。 我建议审核所有setup.py,因为它可能会尝试找到的不只是__init__.py

答案 2 :(得分:0)

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

通过这种方式, 包不会被任何设置工具管理 - 您需要手动管理包,但您可以自由导入{{1} }模块并使用它。

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