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

问题描述 投票:0回答:1

在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在mython模块中更新mymodule.py(尚未尝试过,但我宁愿手动更新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(私有)?
python build module pycharm install
1个回答
0
投票

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

或者更简单的只是检查一个git标签,你的库和pip的版本安装本地检出的代码。

顺便说一句,pycharm与此无关。我建议你也习惯命令行python工具。

© www.soinside.com 2019 - 2024. All rights reserved.