#python #build #module #pycharm #installation
#python #сборка #модуль #pycharm #установка
Вопрос:
В pycharm (2018.3.5 community edition) Я создал новый проект my_module. В каталоге my_module я создал новый (python) файл mymodule.py, в который я поместил:
LOG_LEVEL = 1
def print_text(text):
print(text)
class MyClass:
def __init__(self, text):
self.text = text
def print(self):
print(self.text)
if __name__ == '__main__':
print('LOG_LEVEL =', LOG_LEVEL)
print_text('abc')
obj = MyClass('test')
obj.print()
Если запустить mymodule.py Я получаю вывод:
LOG_LEVEL = 1
abc
test
что нормально.
Я хотел бы использовать этот mymodule.выполните py приватно на нескольких компьютерах простым import mymodule
способом (из любого места). Я узнал, что могу использовать меню pycharm Инструменты> Создать setup.py для создания setup.py с содержимым:
from setuptools import setup
setup(
name='mymodule',
version='0.0.1',
packages=[''],
url='',
license='',
author='myself',
author_email='',
description=''
)
Если я ввожу (cwd) каталог my_module (в котором находится mymodule.py) и выполнить:
sudo pip3 install .
Processing /home/user/Python/my_module
Installing collected packages: mymodule
Running setup.py install for mymodule ... done
Successfully installed mymodule-0.0.1
После этого действия я могу запустить интерпретатор python из pycharm в любой папке и выполнить:
Python 3.7.2 (default, Jan 10 2019, 23:51:51)
[GCC 8.2.1 20181127] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import mymodule
>>> mymodule.LOG_LEVEL
1
>>> mymodule.print_text('abc')
abc
>>> obj = mymodule.MyClass('test')
>>> obj.print()
test
Что нормально. Я прочитал, что вместо sudo pip3 install .
я могу использовать sudo install -e .
, который будет обновлять mymodule в репозитории python при каждом изменении mymodule.py (еще не пробовал, но я бы предпочел обновлять mymodule от версии к версии вручную).
Для компьютера разработки пока все хорошо. Но если я хочу установить mymodule на какой-либо другой компьютер, что мне делать? Я считаю, что я должен создать tar.gz из каталога my_module со всеми необходимыми файлами перенесите это tar.gz файл на другой компьютер, а затем выполнить там… что?
мой модуль должен оставаться закрытым, я не хочу выставлять его публично (я все еще в процессе обучения).
Я заметил, что в pycharm есть пункт меню Инструменты> Выполнить setup.py Задача, которая предоставляет (не все параметры видны) что-то вроде этого:
Может кто-нибудь дать мне подсказку, как:
-
обновить модуль на компьютере разработчика? Должен ли я просто увеличить версию в setup.py и после этого выполнить
sudo pip3 install .
, если я хотел бы вручную контролировать, когда новая версия будет выпущена локально?
Есть ли лучший способ (меньше шагов) каким-либо образом сделать это непосредственно из pycharm? -
Какой был бы самый простой способ (я хотел бы использовать скрипт для копирования и установки mymodule на некоторых других компьютерах) установить / обновить mymodule на других компьютерах (конфиденциально)?
Ответ №1:
Если вы не хотите публиковать свой модуль на pypi, то самый простой вариант частной публикации — поместить свой код в github и объявить его зависимостью VCS в других проектах. Смотрите это для получения более подробной информации.
Или еще проще, просто извлеките тег git, который обновляет вашу библиотеку, и pip установит локальный извлеченный код.
Кстати, pycharm не имеет к этому никакого отношения. Я бы рекомендовал вам также привыкнуть к инструментам командной строки python.
Комментарии:
1. Что не так с tar.gz подход? На данный момент у меня нет учетной записи github.