Pycharm: Как собрать и установить (на другом компьютере) собственный модуль? - PullRequest
0 голосов
/ 01 апреля 2019

В pycharm (выпуск сообщества 2018.3.5) я создал новый проект my_module.В my_module dir я создал новый (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 Tools> Create 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 с версии на версию вручную).

Для разработки компьютера пока все хорошо.Но если я хочу установить мой модуль на какой-нибудь другой компьютер, что мне делать?Я считаю, что я должен собрать tar.gz из каталога my_module со всеми необходимыми файлами, перенести этот файл tar.gz на другой компьютер и выполнить там ... что?

mymodule должен оставаться закрытым, я неЯ не хочу показывать это публично (я все еще в процессе обучения).

Я заметил, что в pycharm есть пункт меню Инструменты> Выполнить задачу setup.py, который обеспечивает (не все параметры видны) что-то вроде этого:

enter image description here

Может кто-нибудь подсказать мне, как:

  1. обновить модуль на компьютере разработчика?Должен ли я просто увеличить версию в setup.py и после этого выполнить sudo pip3 install ., если я хотел бы вручную контролировать, когда новая версия выпускается локально?
    Есть ли лучший способ (меньше шагов) как-то сделать это напрямую из pycharm?

  2. Каков был бы самый простой способ (я хотел бы использовать скрипт для копирования и установки модуля на некоторых других компьютерах) для установки / обновления модуля на других компьютерах (в частном порядке)?

1 Ответ

0 голосов
/ 01 апреля 2019

Если вы не хотите публиковать свой модуль на pypi, то самая простая версия приватной публикации - поместить ваш код в github и объявить его как зависимость VCS в других проектах.См. this для получения более подробной информации.

Или, что еще проще, просто извлеките git-тег, в котором установлена ​​версия вашей библиотеки, и pip, установите локальный извлеченный код.

Кстати, Pycharm имеетничего общего с этим.Я бы порекомендовал вам также привыкнуть к инструментам Python для командной строки.

...