在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,它提供了(并非所有选项都可见),如下所示:
有人可以给我一个暗示如何:
sudo pip3 install .
?
有没有更好的方法(更少的步骤)直接从pycharm以某种方式做到这一点?如果您不想在pypi上发布模块,那么最简单的私有发布版本是将您的代码放在github中,并将其声明为其他项目中的VCS依赖项。有关详细信息,请参阅this。
或者更简单的只是检查一个git标签,你的库和pip的版本安装本地检出的代码。
顺便说一句,pycharm与此无关。我建议你也习惯命令行python工具。