Pipenv установлен git пакет не импортируется - PullRequest
1 голос
/ 12 марта 2020

Я использую pipenv (версия 2018.11.26, Python 3.6.0) для установки пакета, который я создал и отправил в частное репозиторий github.

Пакет содержит setup.py файл со следующим содержимым:

import setuptools

setuptools.setup(
    name='testlib',
    version='0.0.1',
    desctiption='Hello py packaging',
    packages=setuptools.find_packages()
)

Я устанавливаю пакет в virtualenv с помощью

pipenv install  git+https://<token>@github.<private-repo>/<subdir>/testlib.git#egg=testlib
> Successfully installed testlib-0.0.1

и проверяю, установлен ли он правильно

$ pip freeze | grep testlib
> testlib==0.0.1

Но если я пытаюсь импортировать модуль, я получаю ModuleNotFoundError

(.venv) pipenv_tests>python
Python 3.6.0 |Continuum Analytics, Inc.| (default, Dec 23 2016, 11:57:41) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import testlib
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'testlib'
>>>

Может кто-нибудь помочь мне понять, почему? Спасибо

1 Ответ

1 голос
/ 12 марта 2020

Мое плохое, структура папки была неправильной!

setup.py должен находиться вне папки пакета:

repo_folder
|_ setup.py
|_ testlib
|__ classa.py
|__ classb.py

, где setup.py (как упомянуто в вопросе)

import setuptools

setuptools.setup(
    name='testlib',
    version='0.0.1',
    desctiption='Hello py packaging',
    packages=setuptools.find_packages()
)

Теперь, если я импортирую пакет, он работает !!!

(.venv) pipenv_tests>python
Python 3.6.0 |Continuum Analytics, Inc.| (default, Dec 23 2016, 12:06:52) [MSC v.1900 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import testlib
>>> _
...