【问题标题】:Install python module only on home folder in server仅在服务器的主文件夹上安装 python 模块
【发布时间】:2016-03-23 17:09:55
【问题描述】:

我正在一所大学的服务器上编写我的硕士论文,所以我有自己的帐户,如果我留在 /home/myname/ 中,我可以登录并做我想做的所有事情。

我正在开发一些 python 脚本,现在我想将 python 与系统上当前未安装的 octave 模块集成,当然,我无法对 sudo apt-get install 做任何事情。

我如何在不问老师的情况下克服这个问题?

谢谢大家,

法比奥

【问题讨论】:

  • 在“virtualenv”中执行并使用“pip install”进行安装
  • 你能再解释一下吗?
  • virtualenv 用于将您的 python 依赖项与系统包隔离:查看他们的官方页面了解如何使用它的详细信息:virtualenv.pypa.io/en/latest/userguide.html 并且一旦您的 virtualenv 被激活“source bin/activate”,您可以使用“pip install oct2py”独立于您的系统安装 octave,无需权限。 (假设你已经安装了 virtualenv)

标签: python ssh module server


【解决方案1】:

请不要复制python和pip。您应该使用virtualenv 来安装特定于项目的包。这在您无法在系统级别安装东西的用例中特别有用。即使可以,也建议使用 virtualenvs,以便隔离每个项目的依赖关系。

这里有一个快速入门指南,可以帮助您入门。

创建虚拟环境

virtualenv ~/project/env

激活虚拟环境

source ~/project/env/bin/activate

这将修改您的 bash 提示符,将您的 virtualenv 的名称放在括号中以指示您的 virtualenv 已激活。

(env) hostname:current_folder user$

将包安装到虚拟环境中

pip install -r requirements.txt

使用虚拟环境

python script.py

在脚本中默认使用 virtualenv

script.py

#!~/project/env/bin/python

print('hello world!')

然后从命令行

chmod ugo+x script.py
./script.py

    hello world!

停用虚拟环境

deactivate

【讨论】:

  • 谢谢 Suever,这以优雅的方式解决了我的问题 :) 谢谢
【解决方案2】:

让自己成为 python 和 pip 的本地副本,然后你可以安装任何你想要的模块,而不必担心让系统管理员来帮助你。 有一些很好的说明here

转到here 以获取指向您需要的python 版本的链接,并将其替换为上述说明。

在您的 .bashrc 中添加本地副本的别名和路径 - 您可能需要根据自己的情况进行修改:

alias python="~/bin/python" 

PATH=~/.local/bin:~/bin:$PATH

对于 PATH - 当您通过 pip 安装模块的本地副本时,默认情况下它们会转到 ~/.local - 如果您愿意,可以更改此设置。

脚本的开头是:

#/usr/bin/env python

所以他们使用你喜欢的 python 版本

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-12
    • 2016-12-03
    • 2016-08-12
    • 2014-09-05
    • 2012-04-18
    • 2011-02-18
    • 1970-01-01
    相关资源
    最近更新 更多