python - 如何向CentOS服务器上的其他用户授予虚拟环境的访问权限

标签 python ssh centos virtualenv

我使用了本教程(由 GoDaddy 推荐,因为我有 GoDaddy VPS)

https://www.godaddy.com/garage/how-to-install-and-configure-python-on-a-hosted-server/

安装 Python 的辅助版本 (3.6.6) 并创建虚拟环境以使用 Python 的辅助版本运行模块。我希望能够在虚拟环境中运行脚本,但不想始终使用管理员帐户来执行此操作。我设置了另一个没有管理员权限的帐户。有没有办法将权限扩展到创建它的管理员帐户之外的其他人?我是否需要在每个有权运行 python 的用户帐户上创建一个虚拟环境?

它表示要在 bash_profile 脚本中添加一行。脚本已经有这个:

# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
     . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin

export PATH

这是有道理的,因为它似乎定义了底层 Python 的位置(即 2.6.6)。我的 venv 中有需要 3.4+ 的模块,因此我创建了虚拟环境。我希望能够从 Chrome 调用脚本并为某些脚本运行它,并从 cronjob 为其他脚本运行它,并且脚本需要始终指向 virtualenv 才能使用已安装的解释器。我不知道如何正确地做到这一点。这是我的系统信息和一些 SSH 打印输出的结果:

$ cd $PATH
-bash: cd: /home/flohosti/.local/bin:/home/flohosti/perl5/bin:/usr/local/cpanel/3rdparty/lib/path-bin:/usr/local/cpanel/3rdparty/lib/path-bin:/usr/local/cpanel/3rdparty/lib/path-bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/opt/cpanel/composer/bin: No such file or directory

在进入 VirtualEnv 之前,我运行 which python 并获取我期望的/usr/bin/python 。

最佳答案

有多种方法可以做到这一点。

您可以简单地授予对虚拟环境安装目录的读取权限,然后将其路径导出到 /etc/profile以便它自动添加到每个用户路径中。

或者您可以授予对虚拟 env 文件夹内的 python 二进制文件的访问权限。

话虽这么说,这不是正确的方法,大多数时候您希望在 projet 文件夹中拥有虚拟环境,以便项目自动可用,并且谁有权访问该项目.

编辑 1

所以回答你的评论

是的,您绝对可以使用相同的虚拟环境来执行 cron 中的脚本但你必须在 cron 中提供虚拟环境和脚本的绝对路径,例如 /home/flohosti/projectOne/env/bin/python <script path>或者您可以只设置 PATH在 cron 中,然后你也可以使用相对路径。

关于python - 如何向CentOS服务器上的其他用户授予虚拟环境的访问权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54423986/

相关文章:

python - 操作系统错误: no Such file or directory

python - _ 和 __ 在 PYTHON 中是什么意思

linux - 在 Microsoft Azure 上更改 linux SSH 端口时出现问题

C++ Windows Server - 如何接受 SSH 连接?

apache - httpd 2.4 支持 PUT 和 GET 吗?

linux - 在 linux 重启时自动启动服务并运行 mysql 更新查询

python - 抓取一行的一部分直到出现空白

python - TensorFlow:在多台机器上进行训练时,数据并行端点的目的是什么?

linux - 我怎样才能 scp 一个文件并运行一个 ssh 命令只询问一次密码?

centos -/usr/bin/ld : cannot find -lgmp