Следующее не решает проблему OP, но заголовок и ошибка - это именно то, с чем я столкнулся.
Если в вашем проекте есть setup.py
сценарий, вы можете установить этот пакет, в котором вы находитесь, с помощью python3 -m pip install -e .
или python3 setup.py install
или python3 setup.py develop
, и этот пакет будет установлен, но по-прежнему доступен для редактирования (поэтому изменения в коде будут видны при импорте пакета). Если у него нет setup.py
, разберитесь в этом .
В любом случае, проблема, с которой сталкивается OP, похоже, больше не существует?
файл one.py
:
def function():
print("output")
файл two.py
:
import one
one.function()
chmod +x two.py
./two.py
Command line output: output
Другие решения кажутся «грязными»
В случае OP с 2 тестовыми файлами их изменение для работы, вероятно, нормально. Однако в других реальных сценариях методы, перечисленные в других ответах, вероятно, не рекомендуются. Они требуют, чтобы вы изменили код python или ограничили вашу гибкость (запуск файла python из определенного каталога) и, как правило, вызывают раздражение. Что делать, если вы только что клонировали проект, и это произойдет? Вероятно, это уже работает для других, и вносить изменения в код не нужно. Выбранный ответ также требует, чтобы люди запускали сценарий из определенной папки, чтобы он заработал. Это может стать источником длительного раздражения, а это никогда не бывает хорошо. Он также предлагает добавить вашу конкретную папку python в PATH (можно сделать через python или командную строку). Опять же, что произойдет, если вы переименуете или переместите папку через несколько месяцев? Вы должны снова выследить эту страницу, и в конце концов обнаружите, что вам нужно установить путь (и что вы сделали именно это несколько месяцев назад), и что вам просто нужно обновить путь (конечно, вы можете использовать sys.path и программно установить его, но это все еще может быть нестабильным ). Множество источников сильного раздражения.
import sys; sys.path