使用setuptools(或其他Python包构建器)处理顶级包
我正在写一个小的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')
不过这个方法还没有经过测试。