Python вручную устанавливает пакет в виртуальную среду с помощью setup.py - PullRequest
0 голосов
/ 23 сентября 2019

Я занимаюсь разработкой с использованием Python 3.7.

Я пытаюсь написать небольшой пакет Python и установить его в виртуальную среду для тестирования.Библиотека имеет следующую структуру:

my_package/
    src/
        my_package/
            __init__.py
            utilities.py
            some_data_files/
    setup.py
    README.md
    ...

Когда я создаю виртуальную среду и пытаюсь установить:

(env) C:\Users\path\to\my_package python setup.py install

Вывод:

running install
running bdist_egg
running egg_info
writing my_package.egg-info\PKG-INFO
writing dependency_links to my_package.egg-info\dependency_links.txt
writing top-level names to my_package.egg-info\top_level.txt
reading manifest file 'my_package.egg-info\SOURCES.txt'
reading manifest template 'MANIFEST.in'
writing manifest file 'my_package.egg-info\SOURCES.txt'
installing library code to build\bdist.win-amd64\egg
running install_lib
warning: install_lib: 'build\lib' does not exist -- no Python modules to install

creating build\bdist.win-amd64\egg
creating build\bdist.win-amd64\egg\EGG-INFO
copying my_package.egg-info\PKG-INFO -> build\bdist.win-amd64\egg\EGG-INFO
copying my_package.egg-info\SOURCES.txt -> build\bdist.win-amd64\egg\EGG-INFO
copying my_package.egg-info\dependency_links.txt -> build\bdist.win-amd64\egg\EGG-INFO
copying my_package.egg-info\top_level.txt -> build\bdist.win-amd64\egg\EGG-INFO
zip_safe flag not set; analyzing archive contents...
creating 'dist\my_package-0.0.1-py3.7.egg' and adding 'build\bdist.win-amd64\egg' to it
removing 'build\bdist.win-amd64\egg' (and everything under it)
Processing my_package-0.0.1-py3.7.egg
Copying my_package-0.0.1-py3.7.egg to c:\users\jon\development\my_package_env\env\lib\site-p
ackages
Adding my_package 0.0.1 to easy-install.pth file

Installed c:\users\jon\development\my_package_env\env\lib\site-packages\my_package-0.0.1-py3
.7.egg
Processing dependencies for my_package==0.0.1
Finished processing dependencies for my_package==0.0.1

Естьфайл egg в site-packages, но нет каталога, содержащего какие-либо файлы из каталога my_package.Я впервые пишу пакет Python для распространения, и я использую документацию по Python в качестве руководства, но я не готов никуда загружать и хотел бы проверить локально.Может кто-нибудь сообщить мне, какие шаги я должен предпринять, чтобы иметь возможность локально протестировать мой пакет в виртуальной среде?

1 Ответ

0 голосов
/ 27 сентября 2019
  • Создайте исходный и встроенный дистрибутив вашего проекта с помощью этих команд:
    • (env) C:\Users\jon\development\my_package_env>python3 setup.py sdist
    • (env) C:\Users\jon\development\my_package_env>python3 setup.py bdist_wheel
  • Обратите внимание на два вновь созданных архива в каталоге dist/
  • Попробуйте установить эти дистрибутивы в свежих виртуальных средах:
    • C:\Users\jon\development\my_package_env>python3 -m venv sdist-env
    • C:\Users\jon\development\my_package_env>sdist-env\Scripts\activate.bat
    • (sdist-env) C:\Users\jon\development\my_package_env>pip install dist\my_package-0.0.1.tar.gz
    • (sdist-env) C:\Users\jon\development\my_package_env>deactivate
    • C:\Users\jon\development\my_package_env>python3 -m venv wheel-env
    • C:\Users\jon\development\my_package_env>wheel-env\Scripts\activate.bat
    • (wheel-env) C:\Users\jon\development\my_package_env>pip install dist\my_package-0.0.1-py3-none-any.whl

Если вы уверены в этом, вам может понадобиться tox для автоматизации тестирования вашего проекта в нескольких виртуальных средах.

...