0

我有一个简单的程序,其中我使用了两个模块,即 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 也不是这里的最佳解决方案。

4

2 回答 2

1

sqlite3通常是 python 的内置函数(在 2.6 和 2.7 中)。我建议您安装 python 2.7 的完整版本,并将 twython 安装到站点包中。如果您不想这样做,请安装twython到 2.6 站点包中。

于 2013-07-28T23:32:42.460 回答
-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
于 2013-07-28T23:41:35.303 回答