Pycharm:如何构建和安装(在其他计算机上)自定义模块?

时间:2019-04-01 12:13:52

标签: python build module pycharm install

在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的菜单“工具”>“创建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,该怎么办?我相信我应该使用所有必要的文件从my_module目录构建tar.gz,将该tar.gz文件传输到其他计算机,然后在那里执行...什么?

mymodule应该保持私有状态,我不想公开公开(我仍在学习中)。

我注意到pycharm具有菜单选项Tools> Run setup.py Task,该菜单项提供(并非所有选项都可见)这样的东西:

enter image description here

有人可以给我提示如何做吗

  1. 开发计算机上的更新模块?我应该增加 版本在setup.py中,然后如果我执行sudo pip3 install . 想手动控制何时在本地发布新版本?
    是否有更好的方法(较少的步骤)以某种方式直接从pycharm直接执行此操作?

  2. (私下)在其他计算机上安装/更新mymodule的最简单方法是什么(我想使用脚本在其他计算机上复制并安装mymodule)?

1 个答案:

答案 0 :(得分:0)

如果您不想在pypi上发布模块,那么私有发布的最简单版本是将代码放在github中,并在其他项目中将其声明为VCS依赖项。有关更多详细信息,请参见this

或更简单的方法是签出一个git标记,对您的库进行版本控制,然后pip安装本地签出的代码。

通过pycharm与此无关。我建议您也习惯使用命令行python工具。