我使用了本教程(由 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/