Eu tentei pesquisar a resposta no Google, mas sem sorte.
Preciso usar o servidor do supercomputador do Works, mas para que meu script python seja executado, ele deve ser executado por meio de um shell script.
Por exemplo, eu quero job.sh
executarpython_script.py
Como pode ser isto alcançado?
python python_script.py
seu shell script?python python_script.py
. Ou apenas./python_script.py
se o script tiver uma palavrinha.Respostas:
Apenas verifique se o executável python está na sua variável de ambiente PATH e adicione seu script
Detalhes:
chmod u+x job.sh
./job.sh
fonte
python --version
, e pode aplicar a versão compython3 hello.py
.source PATH/TO/VENV/bin/activate
e ligarpython python_script.py
/path/to/Python: can't open file '/path/to/script': [Errno 1] Operation not permitted
existe uma maneira de incluir meu código python em linha dentro do script bash?Método 1 - Crie um script de shell:
Suponha que você tenha um arquivo python
hello.py
Crie um arquivo chamadojob.sh
que contémmarque-o como executável usando
então execute
Método 2 (MELHOR) - Faça o próprio python executar a partir do shell:
Modifique seu script
hello.py
e adicione-o como a primeira linhamarque-o como executável usando
então execute
fonte
#!/usr/bin/env python
. Lembre-se de certificar-se de que você está referenciando a versão + caminho python correta para o seu sistema!Imho, escrevendo
Está completamente errado, especialmente nos dias de hoje. Qual python? python2.6? 2,7? 3.0? 3.1? Na maioria das vezes, você precisa especificar a versão python na tag shebang do arquivo python. Eu encorajo a usar
para compatibilidade.Nesse caso, é muito melhor ter o script executável e invocá-lo diretamente:
Dessa forma, a versão do python que você precisa é escrita apenas em um arquivo. Atualmente, a maior parte do sistema possui python2 e python3 nesse meio tempo, e acontece que o link simbólico python aponta para python3 , enquanto a maioria das pessoas espera que ele aponte para python2 .
fonte
python script.py param
?./abc.py -h
Salve o seguinte programa como
print.py
:Em seguida, no tipo de terminal:
fonte
Isso funciona melhor para mim: adicione isso na parte superior do script:
(C: \ Python27 \ python.exe é o caminho para o python.exe na minha máquina) Em seguida, execute o script via:
fonte
Isso funciona para mim:
Crie um novo trabalho de arquivo shell. Então, digamos:
touch job.sh
e adicione o comando para executar o script python (você pode até adicionar argumentos de linha de comando a esse python, eu geralmente pré-defino meus argumentos de linha de comando).chmod +x job.sh
Dentro,
job.sh
adicione os seguintes arquivos py, digamos:python_file.py argument1 argument2 argument3 >> testpy-output.txt && echo "Done with python_file.py"
python_file1.py argument1 argument2 argument3 >> testpy-output.txt && echo "Done with python_file1.py"
Done with python_file.py
Done with python_file1.py
Eu uso isso normalmente quando tenho que executar vários arquivos python com argumentos diferentes, predefinidos.
Nota: Apenas um rápido aviso sobre o que está acontecendo aqui:
python python_file.py
:, puro e simples. Em seguida, o >> imprimirá e armazenará a saída desse arquivo .py no arquivo testpy-output.txt.fonte
Você deve poder invocá-lo como
python scriptname.py
por exemploVerifique também se o script tem permissões para executar.
Você pode torná-lo executável usando
chmod u+x scriptname.py
.fonte
Eu uso isso e funciona bem
fonte
Como as outras postagens dizem tudo (e eu me deparei com essa postagem enquanto procurava o seguinte).
Aqui está uma maneira de executar um script python a partir de outro script python:
Python 2:
Python 3:
e você pode fornecer argumentos fornecendo outras
sys.argv
fonte