更改Python版本以调用两个不同的模块

时间:2013-07-28 23:26:47

标签: python python-2.7 sqlite python-2.6

我有一个简单的程序,我使用两个模块,即sqlite3和twython。现在sqlite3用于python2.6,而twython用于2.7。因此,如果我将我的shebang线改为2.6,那么twyhton会失败,即

python2.6 t_first.py
ImportError: No module named twython

如果我遵循

python2.7 t_first.py
ImportError: No module named _sqlite3

任何解决方案。 此外,virtualenv不是最好的解决方案。

2 个答案:

答案 0 :(得分:1)

sqlite3通常是python的内置函数(在2.6和2.7中)。我建议您安装一个非破坏版本的python 2.7,然后将twython安装到site-packages中。如果您不想这样做,请将twython安装到2.6站点包中。

答案 1 :(得分:-1)

您可以使用异常处理来管理导入过程。有点像:

try:
    import twython
except ImportError:
    import _sqlite3

如果您假设您需要在任何上下文中存在的两个中的任何一个,则此方法有效。如果twython不可用,这将提供对twython的偏好并回退到_sqlite3。这是一个可接受的逻辑等同于:

if "twython exists" import twython else import _sqlite3 

如果您想更加具体地了解环境,您还可以执行以下操作:

import sys
if sys.version_info == (2, 6):
    import _sqlite3
elif sys.version_info == (2, 7):
    import twython