python - 在新项目中重用我自己的功能的最佳方式?
问题描述
将我制作的功能轻松添加到新项目的最佳方法是什么?我已经制作了一堆我自己创建的 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
脚步
构建和安装
在终端中运行以下。预先激活您的项目环境。
cd root
python setup.py sdist
pip install ./dist/mypackage-1.0.tar.gz
用法
首先激活您的环境。然后在 python 控制台中运行以下命令:
>>> import mypackage
>>> mypackage.foo()
# foo
推荐阅读
- ruby - Pry 中的 ls 命令如何能够接受 -l 作为参数?
- css - 在js轮播中围绕项目符号圈
- sql-server - 将 NVARCHAR 转换为英国日期
- javascript - 使用 Pentaho/JavaScript 制作带有条件的标志
- blockchain - 哪些节点包用于以太坊经典 (ETC) 的交易实现?
- ios - 如何禁止 AVPlayer 在 HLS 流中切换到仅音频轨道
- java - 如何使用 Java 中的几行代码将给定的前链接转换为后链接?
- haskell - 哈斯克尔帕斯卡三角形
- ios - 插入 UITableView
- react-native-android - 无法加载脚本。确保您正在运行 Metro 服务器。[反应原生]