Lo siguiente no resuelve el problema del OP, pero el título y el error es exactamente lo que enfrenté.
Si su proyecto tiene un setup.py
script, puede instalar ese paquete en el que se encuentra, con python3 -m pip install -e .
o python3 setup.py install
o python3 setup.py develop
, y este paquete se instalará, pero seguirá siendo editable (por lo que los cambios en el código se verán al importar el paquete). Si no tiene un setup.py
, dale sentido .
De todos modos, ¿parece que el problema que enfrenta OP ya no existe?
archivo one.py
:
def function():
print("output")
archivo two.py
:
import one
one.function()
chmod +x two.py
./two.py
Command line output: output
Otras soluciones parecen 'sucias'
En el caso de OP con 2 archivos de prueba, modificarlos para que funcionen probablemente esté bien. Sin embargo, en otros escenarios reales, los métodos enumerados en las otras respuestas probablemente no se recomiendan. Requieren que modifique el código Python o restrinja su flexibilidad (ejecutando el archivo Python desde un directorio específico) y generalmente presentan molestias. ¿Qué pasa si acaba de clonar un proyecto y esto sucede? Probablemente ya funcione para otras personas y no es necesario realizar cambios en el código. La respuesta elegida también quiere que las personas ejecuten un script desde una carpeta específica para que funcione. Esto puede ser una fuente de molestias a largo plazo, lo que nunca es bueno. También sugiere agregar su carpeta de Python específica a PATH (se puede hacer a través de Python o la línea de comandos). Nuevamente, ¿qué sucede si cambia el nombre o mueve la carpeta en unos meses? Tienes que buscar esta página de nuevo, y, finalmente, descubre que necesita establecer la ruta (y que hizo exactamente esto hace unos meses), y que simplemente necesita actualizar una ruta (seguro que puede usar sys.path y configurarlo programáticamente, pero esto puede ser inestable ). Muchas fuentes de gran molestia.
import sys; sys.path