python-3.x - 可安装 python 模块的最小示例
问题描述
假设我有一个包含一些 .py 文件的目录,以及一些包含其他 .py 文件的目录
该目录称为 my_program
my-program
-- dir1
-- file.py
-- dir2
我希望能够从任何目录中使用 my_program 定义的模块,比如这样做
>>> import my_program
>>> myprogram.dir1.file.function()
或通过做
>>> import my_program.dir1.file
>>> file.function()
我还想使用 pip “安装”我的模块以实现系统范围内的可访问性
解决方案
下面是一个最小的工作示例
my_packs/
├── foo
│ ├── code.py
│ └── __init__.py
└── setup.py
这里 code.py 包含一些有用的功能,而 setup.py 包含
from setuptools import find_packages, setup
setup(name="foo",
version="0.1",
description="A foo utility",
author="Ewen Cheslack-Postava",
author_email='me@ewencp.org',
platforms=["any"], # or more specific, e.g. "win32", "cygwin", "osx"
license="BSD",
url="http://github.com/ewencp/foo",
packages=find_packages(),
)
init 是一个空文件
该软件包可以安装
python setup.py develop
或者
pip install -e .
然后,从任何目录,它运行如下:
python -c 'import foo.code; print(foo.code.useful_function())'
示例改编自:https ://ewencp.org/blog/a-brief-introduction-to-packaging-python/index.html
推荐阅读
- mysql - 从子项中获取列作为一列中的列表
- node.js - 有多个模块的名称仅在大小写 Nextjs 上有所不同
- scala - 动态重命名数据框中的列,然后再加入一个表
- ios - Xcode 12 无法添加 watchOS 4.2 模拟器
- java - 无法从类中的方法返回泛型类型的数组
- javascript - TypeError:jwt.split 不是 OAuth2Client.verifySignedJwtWithCertsAsync 节点包中的函数:google-auth-library
- javascript - 无法显示元素
- c - if 语句触发了不需要的断点
- javascript - bootstrtap Card中的onClick函数
- postgresql - 带有 Postgress 数据库引擎的 Docker 容器上的 SonarQube 管理员密码