我开发了 python 应用程序,我决定将其转换为要在easy_install
或pip
以后安装的包。我已经使用搜索找到了几个关于 python 包目录结构的好资源,请参阅这个答案或这篇文章。
我创建了以下结构(我在列表中省略了几个文件以使结构更清晰)
项目/ |-- 仓/ |-- 我的包/ | |-- 测试/ | | |-- __init__.py | | |-- 测试服务器.py | |-- __init__.py | |-- 服务器.py | |-- 实用程序.py |-- 文档/ | |-- 索引.rst |-- README.txt |-- 许可证.txt |-- 设置.py
之后我创建了可执行脚本server-run
#!/usr/bin/env python 从 my_package 导入服务器 server.main()
我放入bin
目录中。python setup.py install
如果我使用或通过一切正常安装我的包pip/easy_install
,我可以运行server-run
并且我的服务器开始处理传入的请求。
但我的问题是如何server-run
在开发环境中测试它的工作原理(无需事先安装my_package
)?另外我想使用这个脚本来运行最新的服务器代码以用于开发目的。
开发发生在Project
目录中,所以ImportError
如果我运行,我会得到./bin/server-run
user@host:~/dev/Project/$ ./bin/server-run 回溯(最近一次通话最后): 文件“./bin/server-run”,第 2 行,在 导入我的包 ImportError:没有名为 my_package 的模块
是否可以修改bin/server-run
脚本以便如果我从文件系统中某处的另一个文件夹运行它(不一定从Project
目录)运行它?另请注意,我想使用(如果可以实现)相同的脚本在生产环境中运行服务器。