作者bopomofo (ㄅㄆㄇㄈ)
看板Python
标题[问题] 打包以後的测试与多版本执行问题
时间Sat Mar 10 01:47:30 2012
我的 linux 系统有安装两个版本的 python
分别为 /usr/bin/python2.4 和 /usr/bin/python2.6
我写的软体里面有 console script,类似这样
setup(
name = "hello",
version = "0.1",
py_modules = ['hello'],
entry_points = {
'console_scripts': [ 'hello=hello:main' ]
}
)
软体开发好後,要把所有测试执行一遍我就用以下指令
python setup.py test
安装的话,若用以下指令
python2.4 setup.py install
会发现安装後 hello 那支 console script 的 shebang 很聪明地变成
#!/usr/bin/python2.4
而若用以下指令
python2.6 setup.py install
则安装後 hello 那支 console script 的 shebang 也很聪明地变成
#!/usr/bin/python2.6
因此我可以在安装时决定这 console script 是用哪一个版本的 python
现在问题来了,为方便传递给使用者,我把开发好的软体打包
python2.4 setup.py bdist_egg
产生了一个 hello-0.1-py2.4.egg
Q1: 要如何让一个封包档的所有测试执行过一遍呢
类似 python setup.py test 的效果
此外是安装问题,我用以下指令
easy_install hello-0.1-py2.4.egg
安装好以後,那支 console script 的 shebang 是
#!/usr/bin/python
这个 /usr/bin/python 是连结到 python2.6 的
现在问题的前提是无法改变 /usr/bin/python 连结到哪个版本
我希望安装时能指定此 console script 用哪个版本来执行
例如我希望它的 shebang 是 #!/usr/bin/python2.4
Q2: 要如何在安装封包档时指定 console script 用哪一版本的 python 呢
类似 python2.4 setup.py install 和 python2.6 setup.py install 之差别
以上两个问题 Q1, Q2 请教,谢谢罗
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 111.248.109.72
1F:推 sidetalker:多版本问题可考虑 virtualenv 03/11 17:39
2F:→ sidetalker:此外可用 easy_install-2.4 和 easy_install-2.6 解决 03/11 17:40
3F:推 sidetalker:要测试是否 sdist 较佳?bdist 是用来安装测试过的软体 03/11 17:52
4F:推 elleryq:推virtualenv,好用! 03/12 18:23
5F:→ bopomofo:谢谢,真的可以 03/12 23:40