Как предоставить доступ к виртуальной среде другим пользователям на сервере CentOS - PullRequest
0 голосов
/ 29 января 2019

Я использовал этот учебник (записано 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, который я ожидал.

1 Ответ

0 голосов
/ 29 января 2019

Есть несколько способов сделать это.

Вы можете просто предоставить доступ на чтение к каталогу, в котором установлена ​​виртуальная среда, а затем экспортировать его путь в /etc/profile, чтобы он автоматически добавлялся к каждому пути пользователя.

Или вы можете предоставить доступв двоичный файл python внутри виртуальной папки env.

При этом говорят, что это неправильный способ, в большинстве случаев вам захочется иметь виртуальную среду внутри вашей папки projet, чтобы она была автоматически доступна для проекта и кто когда-либо имел доступв этот проект.

Редактировать 1

Так что ответ на ваш комментарий

Да, абсолютно точно, вы можете использовать тот же виртуальный env для выполнения скрипта в cron но вы должны указать абсолютный путь к окружению virtaul и вашему скрипту в cron, например /home/flohosti/projectOne/env/bin/python <script path>, или вы можете просто установить PATH в cron, а затем вы можете использовать и относительный путь.

...