使用setuptools(或其他Python包构建器)处理顶级包

1 投票
1 回答
540 浏览
提问于 2025-04-16 10:17

我正在写一个小的Python应用程序。我希望能够轻松地部署这个应用。我知道Python 2.6可以直接执行一个包含main模块的egg文件,我实际上已经成功实现了这一点。

不过,有一个小问题就是,当我尝试使用argparse库时,我不能把这个库直接放进egg文件里,而是必须把它安装到我的源代码目录中(或者把argparse.py的链接放到我的源代码目录里),因为argparse模块是在顶层包里的。

如果我把它安装到一个叫“argparse”的子目录里,我就必须用“from argparse import argparse”来导入,而不是通常的“import argparse”。

我希望能够在egg文件中指定一个类似于site-packages的目录,这样我就可以直接在里面安装第三方模块或包。有没有办法通过setuptools(或者其他的egg构建工具)来实现这个?

谢谢!

1 个回答

0

我觉得你可以创建一个叫做toplevel的子目录,然后在你的入口文件中这样做:

import sys
sys.path.insert(0, './toplevel')

不过这个方法还没有经过测试。

撰写回答