簡體   English   中英

Pycharm:如何構建和安裝(在其他計算機上)自定義模塊?

[英]Pycharm: How to build and install (on other computer) custom module?

在pycharm(2018.3.5社區版)中,我創建了一個新項目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

這沒關系。

我想通過簡單的import mymodule (從任何位置)私下在幾台計算機上使用mymodule.py。 我發現我可以使用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

執行此操作后,我可以在任何文件夾中從pycharm啟動python解釋器並執行:

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.py時都會更新python存儲庫中的mymodule(尚未嘗試過,但我寧願手動將mymodule從版本更新到版本)。

對於開發計算機到目前為止是如此的好。 但如果我想在其他計算機上安裝mymodule,我該怎么辦? 我相信我應該從my_module目錄中構建一個包含所有必要文件的tar.gz,將這個tar.gz文件傳輸到其他計算機而不是在那里執行......什么?

mymodule應該保持私密,我不想公開暴露它(我還在學習過程中)。

我注意到pycharm有菜單選項Tools> Run setup.py Task,它提供了(並非所有選項都可見),如下所示:

在此輸入圖像描述

有人可以給我一個暗示如何:

  1. 在開發計算機上更新模塊? 我應該只在setup.py中增加版本,然后執行sudo pip3 install . 如果我想手動控制何時在本地發布新版本?
    有沒有更好的方法(更少的步驟)直接從pycharm以某種方式做到這一點?

  2. 什么是最簡單的方法(我想使用腳本在其他計算機上復制和安裝mymodule)在其他計算機上安裝/更新mymodule(私有)?

如果您不想在pypi上發布模塊,那么最簡單的私有發布版本是將您的代碼放在github中,並將其聲明為其他項目中的VCS依賴項。 有關詳細信息,請參閱

或者更簡單的只是檢查一個git標簽,你的庫和pip的版本安裝本地檢出的代碼。

順便說一句,pycharm與此無關。 我建議你也習慣命令行python工具。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM