[ПОНЯТИЯ: вы можете пропустить эту часть.
Этот проект начинался с очень маленького проекта и рос по мере того, как я добавлял к нему новые элементы. Он основан на Flask, поэтому основной код находится в app.py; В качестве помощников я создал несколько десятков функций. Когда я узнал, я обнаружил, что могу выделить их в отдельный файл и импортировать, а затем создать пакет библиотеки для распространения на случай, если они понадобятся кому-то еще в моей компании. Все это работало достаточно хорошо, и я смог сослаться на установленный пакет. Однако в рамках моих усилий по перемещению этого в систему контроля версий я создал новую структуру каталогов (основной каталог Projects, отдельные подкаталоги для проекта UTILS_DEV и пакета SPECIAL_FUNCTIONSLIB на одном уровне). Следовательно, исходный код пакета находится не там, где он был, но я не думаю, что это имеет значение, если пакет был установлен и включен в каталоги библиотеки.]
Я попробовал следующее строки импорта:
Код: Выделить всё
import special_functionslib
from special_functions import *
from special_functionslib.special_functions import *
from special_functions import func1, func2, func3
from SPECIAL_FUNCTIONSLIB.special_functions import func1, func2, func3
from ..SPECIAL_FUNCTIONSLIB.special_functions import func1, func2, func3
installed_packages_list = sorted(["%s== %s" % (i.key, i.version) для i в установленных_пакетах])
для пакета в списке установленных_пакетов:
... print(package)
в консоли Python. Однако по какой-то причине он НЕ отображается как доступный в консоли Python при вводе help('modules') - я предполагаю, что это по той же причине. Каждая из вышеперечисленных команд импорта, кстати, завершается с ошибкой в консоли.
Я уверен, что нужно больше информации, но не знаю, что именно. Пожалуйста, дайте мне знать, что еще я могу предоставить.
Как видите, я попытался указать имя модуля имени пакета (файла кода) и информацию об относительном пути - ничего из этого не помогло. Я по-прежнему получаю ту же ошибку при попытке вызвать файл app.py. Я вижу похожие вопросы, на которые были даны ответы при обсуждении структуры каталогов, но ни один из них не касается собранных и установленных пакетов, а только локального кода.
[ОБНОВЛЕНИЕ: 17 октября, 15:20 UTC]
Когда я устанавливал, я делал это с помощью pip, указывая на файл .whl. Я сделал это дважды подряд, чтобы гарантировать, что это будет доступно не только моему локальному пользователю, но и любому пользователю. В результате пакет указан дважды:
Код: Выделить всё
/export/home/dlevey/.local/lib/python3.12/site-packages/special_functionslib-0.8.7.dist-info
/usr/local/lib/python3.12/site-packages/special_functionslib-0.8.7.dist-info
Код: Выделить всё
Python 3.12.6 (main, Sep 9 2024, 00:00:00) [GCC 14.2.1 20240801 (Red Hat 14.2.1-1)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.path
['', '/usr/lib64/python312.zip', '/usr/lib64/python3.12', '/usr/lib64/python3.12/lib-dynload', '/export/home/dlevey/.local/lib/python3.12/site-packages', '/usr/local/lib64/python3.12/site-packages', '/usr/local/lib/python3.12/site-packages', '/usr/lib64/python3.12/site-packages', '/usr/lib/python3.12/site-packages']
>>> import special_functionslib
Traceback (most recent call last):
File "", line 1, in
ModuleNotFoundError: No module named 'special_functionslib'
>>>
Подробнее здесь: https://stackoverflow.com/questions/790 ... -on-instal