Tornar o arquivo python acessível de qualquer lugar por todos os usuários

2

Eu instalei um programa que requer que você execute um script python como este:

python fit_locus.py --help

Eu quero tornar o arquivo acessível a todos os usuários sem que eles precisem navegar para a pasta do arquivo python, para que possam executar o comando em suas pastas base.

Eu tentei adicionar a pasta de instalação à variável PATH e tentei criar um symlink do arquivo em / bin e / usr / bin, mas não funcionou.

É possível fazer isso ou devo exigir que os usuários naveguem até a pasta onde o programa está instalado?

EDIT: Aqui está minha variável PATH:

Sem a exportação:

/gasgano/bin:/opt/intel/composer_xe_2011_sp1.9.293/bin/intel64:/usr/local/sbin:/‌​usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/esoreflex/bin:/‌​opt/intel/composer_xe_2011_sp1.9.293/mpirt/bin/intel64

Com a exportação:

/gasgano/bin:/opt/intel/composer_xe_2011_sp1.9.293/bin/intel64:/usr/local/sbin:/‌​usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/esoreflex/bin:/‌​opt/intel/composer_xe_2011_sp1.9.293/mpirt/bin/intel64:/opt/big-macs-calibrate/

E o caminho /opt/big-macs/calibrate/ é o que contém o script python fit_locus.py

EDIT2:

Nas instruções de instalação do programa que estou tentando disponibilizar para todos os usuários, há este pequeno guia:

Defina as variáveis ambientais:

1 - BIGMACS para o caminho do diretório de instalação

por exemplo,

setenv BIGMACS /Users/ronald/big-macs-calibrate/ (tcsh shell)      
BIGMACS=/Users/ronald/big-macs-calibrate/ (bash shell)
export BIGMACS

2 - adicione o diretório de instalação ao PYTHONPATH

por exemplo,

setenv PYTHONPATH $BIGMACS:PYTHONPATH (tcsh shell)
PYTHONPATH=$BIGMACS:PYTHONPATH
export PYTHONPATH

Mas também não funciona. O erro que recebo quando tento executar python fit_locus.py --help é:

python: can't open file 'fit_locus.py': [Errno 2] No such file or directory
    
por JefersonFG 05.05.2016 / 14:15

2 respostas

3

Para tornar algo assim facilmente executável, adicione isso como a primeira linha do script python:

#! /usr/bin/python

e o arquivo em si deve ser executável; isto é, os x bits devem ser definidos, chmod +x fit_locus.py .

Como o script está no PATH alterado, os usuários podem inserir o nome. Para simplificar, você pode remover o '.py' para que os usuários só precisem digitar

fit_locus --help

a menos que haja uma razão pela qual você queira que os usuários saibam que é um script python.

    
por 05.05.2016 / 14:51
0

Uma maneira alternativa é criar um lançador de área de trabalho. Isso poderia especificar o caminho exato para o arquivo. O lançador pode então ser copiado para a área de trabalho de cada usuário. Outra abordagem é um script inicial menor para ir para a pasta inicial de cada usuário. Mas então você tem que usar ./, ~ / ou $ HOME / antes do nome do script para iniciá-lo.

No entanto, você pode adicionar pastas à extremidade inicial ou final de $ PATH para cada usuário se modificar o .bashrc ou o .profile para cada usuário. Esta é uma mudança permanente que entra em vigor toda vez que eles efetuam login. Portanto, há opções.

    
por 05.05.2016 / 17:12