Предположим, у меня есть пакет Python с именем bestpackage
.
Соглашение диктует, что bestpacakge
также будет каталогом на sys.path
, который содержит __init__.py
, чтобы интерпретатор предположил, что он может быть импортирован.
Есть ли способ установить переменную для имени пакета, чтобы каталог можно было назвать иначе, чем директива, с которой я его импортирую? Есть ли способ сделать так, чтобы пространство имен не заботилось о имени каталога и вместо этого учитывало какую-то другую конфигурацию?
Мои супермодные клиентские разработчики просто в восторге от этих something.otherthing.js
сексуальных названий проектов для одного из наших небольших сторонних проектов!
ИЗМЕНИТЬ:
Чтобы уточнить, основная цель моего вопроса заключалась в том, чтобы позволить моим парням на стороне клиента продолжать вызывать каталоги в своих папках «проекты» (тот, который мы все добавили к нашим путям), используя их существующее соглашение (some.app.js), даже несмотря на то, что в некоторых случаях они на самом деле являются пакетами Python, которые будут находиться на пути и исходить из операторов import
внутри. Я понимаю, что на практике это довольно ужасная вещь, и поэтому я спрашиваю больше из любопытства. Таким образом, часть большой проблемы здесь заключается в том, чтобы обойти тот факт, что .
в имени каталога (и, следовательно, в предполагаемом имени пакета) подразумевает доступ к атрибуту. Меня не очень удивляет, что это нельзя обойти, мне просто любопытно, возможно ли это глубже в «магии» импорта.
Здесь есть несколько замечательных ответов, но все они основаны на выполнении классического импорта, в котором метод доступа к атрибуту .
будет конфликтовать с именами каталогов.
__init__.py
называется пакетом. - person Martijn Pieters   schedule 06.11.2012