【发布时间】:2014-06-17 02:11:40
【问题描述】:
我想在远程 linux 机器上运行 python 脚本。 该脚本需要一个包networkx。但是,我无法在远程机器上安装python包,我该怎么办?
【问题讨论】:
-
使用 Virtualenv 并在本地安装。它不需要任何特权。
标签: python linux python-module
我想在远程 linux 机器上运行 python 脚本。 该脚本需要一个包networkx。但是,我无法在远程机器上安装python包,我该怎么办?
【问题讨论】:
标签: python linux python-module
一般有四个选项(可以存在更多):
$ pip install --user networkx
这不需要root权限并安装到用户特定的目录中。
$ virtualenv env
$ cd env
$ source bin/activate
$ pip install networkx
注意,没有--user 选项。
当你需要启动程序时,你需要使用 env/bin 目录下的 python,这会自动使用你之前设置的 virtualenv。 (无需致电activeate。
你可以把需要的包的egg或者源代码放到本地目录中,并操作sys.path来包含它,然后它就会从那里导入。然而,这并不容易,事实上它和 virtualenv 提供的一样。
zc.buildout 工具是 virtualenv 的替代解决方案。您可以将所有内容保存在一个目录树中,从这里运行。我过去多次使用这个解决方案,但与virtualenv相比它有点过于复杂
【讨论】:
time和&甚至screen。如果我使用virtualenv,会不会有问题?谢谢!
$ pip install networkx-1.8.1-py2.7.egg。通过$ python -c "import networkx" 从python 对其进行测试。如果它没有抱怨,你就安装了它。也可以通过>>> import networkx 从 ipython 或 python 的交互式控制台对其进行测试。然后可以删除您用于安装的 egg 文件。
python,它将适用于virtualenv