колесо установки python приводит к ошибке импорта - PullRequest
0 голосов
/ 11 января 2019

Я хотел бы сделать двоичный дистрибутив wheel, установить его и затем импортировать в Python. Мои шаги

  • Сначала я создаю колесо: python ./my_package/setup.py bdist_wheel
  • устанавливаю колесо: pip install ./dist/*.whl
  • Я пытаюсь импортировать пакет: python -c"import my_package"

Это приводит к ошибке: ImportError: No module named 'my_package'

Кроме того, когда я делаю pip list, в списке появляется my_package. Однако когда я запускаю which my_packge, ничего не отображается.

Когда я запускаю pip install ./my_package/ все работает как положено.

Как мне правильно собрать и установить колесо?

Python версии 3.5 пип версия 10.1 версия колеса 0.31.1

ОБНОВЛЕНИЕ:

Когда я просматриваю файлы внутри my_package-1.0.0.dist-info, в top_level.txt появляется неожиданная запись. Это имя папки, в которой я работал python ./my_package/setup.py bdist_wheel дюйма. Я считаю, что мой setup.py сломан.

ОБНОВЛЕНИЕ ОТНОСИТЕЛЬНО ПРИНЯТОГО ОТВЕТА: Я принял ответ ниже. Тем не менее, я думаю, что лучше просто cd в каталог пакета. Переключение на другой каталог, как предлагается ниже, приводит к неожиданному поведению при использовании флага -d, то есть целевого каталога, в котором нужно сохранить колесо. Это будет относительно каталога, указанного в файле setup.py.

1 Ответ

0 голосов
/ 11 января 2019

Если вам нужно выполнить скрипт установки из другого каталога, убедитесь, что вы вводите dir проекта в скрипт.

from setuptools import setup

root = os.path.normpath(os.path.join(os.path.abspath(__file__), os.pardir))
os.chdir(root)

# or using pathlib (Python>=3.4):
import patlib
root = pathlib.Path(__file__).parent
os.chdir(str(root))

setup(...)
...