Несколько пользовательских модулей из каталога, не входящего в PATH, используя только командное окно (Anaconda 3)

До этого момента я организовал свои проекты таким образом, что все, над чем я работаю, находится в одной папке, поэтому для воспроизведения/отладки я только что запустил Python из этой папки:

C:\Users\Username\Dropbox\Projects\MyShinyProject>Python
>>>

Однако я хочу начать лучше организовывать вещи. Я создал несколько классов "Утилиты", которые, как я полагаю, я буду использовать снова и снова. Поэтому они должны быть в их собственной папке.

Итак, теперь, скажем, у меня есть папка Projects (в Windows) с большим количеством подпапок, над которыми я работаю:

Projects
 Sandbox
 Sandbox1
 Sandbox2
 MyUtilities
 __init__.py
 Utility1.py
 MyShinyProject
 __init__.py
 ImportantClass.py

Я хотел бы иметь возможность войти в командную строку и использовать классы/функции из папки MyUtilities и из папки MyShinyProject. Однако, если я запускаю Python из MyShinyProject, у меня нет доступа к MyUtilities (или наоборот). Я попытался сделать относительный импорт следующим образом:

>>>import ..MyUtilities.Utility1

Но это не работает:

import ..MyUtilities.Utility1
 ^
SyntaxError

Если это имеет значение: я не использую IDE. Я просто использую Notepad++ и командную строку. Кроме того, я добавил файлы __init__.py в папки, потому что я читал где-то, что вы должны делать это, когда делаете модули, но я не понимаю, как правильно все это работает, или если я даже близко чтобы делать это правильно.

Я также попытался добавить папку "Проекты" в переменную PATH в таблице среды Windows, но это, похоже, не работает. Даже после добавления импорта импорт не работает, и когда я это делаю:

import sys
for x in sys.path:
 print(x)

... папка, которую я добавил в PATH, не появляется (я попытался добавить ее в начало и конец).

Как я могу использовать несколько моих созданных пользователем модулей вместе с помощью командной строки для их импорта?

1 ответ

Предполагая, что у вас __init__.py в папке "Проекты", в консоли вы можете сделать это:

import sys
sys.path.append("C:\Users\Username\Dropbox\Projects")
import Projects.MyUtilities.Utility1

Или, если вы хотите постоянно добавить нужный каталог в путь python, вы можете добавить каталог в значение переменной среды PYTHONPATH.

licensed under cc by-sa 3.0 with attribution.