Наведене нижче не вирішує проблему 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