我有一个简单的程序,我使用两个模块,即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不是最好的解决方案。
答案 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