2016-07-15 1 views
0

У меня есть «домашний» пакет python, который я могу успешно установить через диспетчер пакетов pip.Распределить пакет pip нет исходный код

Я хотел ти распространять его без предоставления исходного кода (* .py файлы) ... я попытался собрать их с

python -m compileall .

, а затем установили, набрав pip install .

Однако он не может найти модуль, когда я пытаюсь импортировать его в свое приложение.

ImportError: No module named...

Что вы предлагаете решить?

Благодаря

+0

Отсутствуют некоторые шаги, например. фактически создавая пакет. –

ответ

0

Я предполагаю, что это делать с Setuptools не пакадж *.pyc файлов, потому что обычно вы не хотите их.

Вы должны создать файл MANIFEST.in с содержанием

global-include *.py[co] 
global-exclude *.py 

Это говорит Setuptools исключить *.py исходные файлы и включают *.pyc скомпилированные файлы.

Затем создать дистрибутив исходного

python setup.py sdist 

или колесо

python setup.py bdist_wheel 

который также компилирует расширения C.

+0

Спасибо, что-то движется дальше, но теперь я не знаю, как установить сжатый файл с * .py [co] файлами. У меня есть файл dist/package.tar.gz, но он не имеет файла setup.py внутри (я думаю, согласно файлу manifest.in) Как мне продолжить? – Fabiosoft

+0

[Добавить еще одну запись в 'MANIFEST.in'] (https://docs.python.org/3/distutils/sourcedist.html#specifying-the-files-to-distribute), которая включает' setup.py'. –