如何方便地为新项目添加功能?我自己创建了一堆python函数,我经常在我的项目中使用它们,但我忘记了我把它们放在哪里,当我改变它们时,它们的版本就不同步了
我应该把所有这些函数都添加到pypi吗?这似乎很耗时,尤其是因为其中很多都非常小。
我还可以将函数保存为.py文件,并将它们添加到我创建新项目的目录中,并通过简单的导入导入。但这样做的问题是,如果我改变了原始文件的某些内容,我将需要跟踪函数文件的每个实例,并用新文件替换它们。
我也可以使用绝对路径导入,我已经简要介绍过了。它们看起来很烦人,但这可能比每次更改文件时跟踪文件的每个副本要少得多。另一个大问题是我做了很多云计算,每次我从本地运行到云上运行都会破坏我的代码,并迫使我无论如何都要复制代码。
这里有人遇到类似的问题吗?你想出一个好的解决方案了吗?有我没想过的选择吗?欢迎提出建议!
下面是创建本地包的基本示例。
文件夹结构root/
├─ mypackage/
│ ├─ __init__.py
│ ├─ func.py
setup.py
__init__.py
from .func import foo
setup.py
from distutils.core import setup
setup(name="mypackage",
version='1.0',
description='',
packages=["mypackage"],
)
func.py
def foo():
print("foo")
return
步骤Build and Install
root/
├─ mypackage/
│ ├─ __init__.py
│ ├─ func.py
setup.py
__init__.py
from .func import foo
setup.py
from distutils.core import setup
setup(name="mypackage",
version='1.0',
description='',
packages=["mypackage"],
)
func.py
def foo():
print("foo")
return
在终端运行以下命令。预先激活项目环境.
cd root
python setup.py sdist
pip install ./dist/mypackage-1.0.tar.gz
使用首先激活您的环境。然后在python控制台中执行以下命令:
>>> import mypackage
>>> mypackage.foo()
# foo