Я полный новичок в этом, так что терпите меня;единственное, что я сделал с пакетами, - это разрешил anaconda установить numpy для меня, а затем я импортировал его (и некоторые другие) в сценарии.Я впервые играю с самим пакетом.
Цель: у меня есть куча скриптов .py, которые я хотел бы собрать в пакет;Я хочу поведение, к которому я привык;У меня есть программы на Python, которые живут где-то на моем компьютере (где бы кто-нибудь ни решил сохранить проект), и мне не нужно беспокоиться о пути (потому что это червь я тоже не понимаю), я хочу напечатать mypackage, "importmypackage as mp "(точно так же, как import numpy как np), а затем отправляйтесь в гонки.
Заметьте, что я не знаю, как устроен numy или какой-либо правильный пакет, так что, возможно, аналогия вводит в заблуждение?Но я хочу импортировать функции, определенные для нескольких скриптов .py, которые все сохранены в одной папке (для удобства я также называю mypackage).
Я последовал примеру в этом видео , я написал модуль и поместил его в anaconda3 \ Lib \ site-packages \ и смог написать программу на python, которая живет в некоторой случайной другойпапка, которая может затем импортировать и запускать модуль.
Но, опять же, это позволяло мне получать доступ только к функциям, соответствующим одному скрипту / модулю .py.Я хотел бы иметь возможность добавить папку (я предполагаю с адресом anaconda3 \ Lib \ site-packages) со всеми моими скриптами / модулями, а затем иметь возможность импортировать пакет, соответствующий всем этим модулям.
Я пробовал некоторые решения , но пока не повезло.Я не совсем понимаю сценарии init .py и path .py (в частности, я не понимаю, должны ли они находиться в \ site-packages \ или in \ site-packages \ MyPackage).В частности, я следовал этому решению , потому что он его прописал, но я просто не могу заставить python импортировать что-либо в \ site-packages \ mypackage.
Edit: Я выполнил шаги в этом видео, и он получил нужные мне результаты.
Структура папки пакета
Папка подпакетаструктура
Однако не все способы импорта пакетов в видео работают мне.Вот код, который я смог успешно использовать в скрипте Python, который живет, например, на моем рабочем столе и имеет доступ к пакетам следующим образом:
import mypackage.demo # mypackage is the folder, demo is the python script
mypackage.demo.demoprint() # demoprint() is the function defined in demo.py
> Now in the demo file!
del mypackage
from mypackage.demo import demoprint
demoprint()
> Now in the demo file!
del demoprint
import mypackage.demo as mp
mp.demoprint()
> Now in the demo file!
del mp
# Call subpackage functions
from mypackage.subpackage.subdemo import subdemoprint
subdemoprint()
> Now in the subdemo package and file!
del subdemoprint
from mypackage.subpackage import subdemo as sd
sd.subdemoprint()
> Now in the subdemo package and file!
del sd