我刚刚开始一个新的开源Python(3)项目。但是,到目前为止,我的Python脚本始终仅限于一个文件。我试图制作一个可安装的软件包(可以通过PyPi安装)然后可以在使用pip3
安装软件包之后将其自己的脚本导入其中。
这是我当前的项目树。
├── LICENSE
├── README.md
└── library
├── CHANGELOG.txt
├── LICENSE.txt
├── MANIFEST.in
├── README.txt
├── setup.py
└── my-module
├── __init__.py
├── plugins
│ ├── __init__.py
│ └── some-plugin.py
└── my-module.py
有关结构的信息和推理。
my-module.py
的实际模块目录,最后将在用户的脚本中导入。我如何考虑内部运作的一个例子。
示例插件some-plugin.py
:
#!/usr/bin/env python
import tweepy
class MyFirstPlugin:
def __init__(self):
self._consumer_key = None
...
# Getters.
@property
def consumer_key(self):
return self._consumer_key
...
# Setters.
@consumer_key.setter
def consumer_key(self, value):
self._consumer_key = value
...
# Deleters.
@consumer_key.deleter
def consumer_key(self):
del self._consumer_key
...
def do_magic(self):
return "Some magic logic"
my-module.py
代码示例:
#!/usr/bin/env python
import plugins.some-plugin as somePlugin
t = None
def setupTwitter(consumer_key, ...):
t = somePlugin.MyFirstPlugin()
t.consumer_key = consumer_key
...
def getTwitterFollowers():
return t.do_magic()
包my-awesome-script.py
的使用示例:
#!/usr/bin/env python
import my-module # after installing it with pip3
my-module.setupTwitter('my super secret consumer key', ...)
followers = my-module.getTwitterFollowers()
几个问题:
现在我可以看到很多关于我的问题的个人意见,但我更关注推荐的解决方案/最佳实践。其他建议也随时欢迎。在我真正开始研究之前,我想确保我拥有基本结构。