O seguinte não resolve o problema do OP, mas o título e o erro são exatamente o que eu encontrei.
Se o seu projeto tiver um setup.py
script, você pode instalar o pacote em que está, com python3 -m pip install -e .
ou python3 setup.py install
ou python3 setup.py develop
, e este pacote será instalado, mas ainda editável (portanto, as alterações no código serão vistas ao importar o pacote). Se não tiver um setup.py
, faça sentido .
De qualquer forma, o problema que o OP enfrenta parece não existir mais?
arquivo one.py
:
def function():
print("output")
arquivo two.py
:
import one
one.function()
chmod +x two.py
./two.py
Command line output: output
Outras soluções parecem 'sujas'
No caso do OP com 2 arquivos de teste, modificá-los para funcionar provavelmente é adequado. No entanto, em outros cenários reais, os métodos listados nas outras respostas provavelmente não são recomendados. Eles exigem que você modifique o código python ou restrinja sua flexibilidade (executando o arquivo python de um diretório específico) e geralmente introduzem aborrecimentos. E se você acabou de clonar um projeto e isso acontece? Provavelmente já funciona para outras pessoas e fazer alterações no código é desnecessário. A resposta escolhida também quer que as pessoas executem um script de uma pasta específica para fazê-lo funcionar. Isso pode ser uma fonte de aborrecimento de longo prazo, o que nunca é bom. Ele também sugere adicionar sua pasta python específica ao PATH (pode ser feito por meio de python ou linha de comando). Novamente, o que acontece se você renomear ou mover a pasta em alguns meses? Você tem que caçar esta página novamente, e, eventualmente, descobrir que você precisa definir o caminho (e que você fez exatamente isso há alguns meses), e que você simplesmente precisa atualizar um caminho (claro, você pode usar sys.path e defini-lo programaticamente, mas isso ainda pode ser instável ) Muitas fontes de grande aborrecimento.
import sys; sys.path