我使用SQLite在python中编写了一个web应用程序,它在家里的服务器上运行正常(使用apache和python 2.5.2)。我现在正尝试将其上传到我的网络主机,并且服务器使用不带SQLite的python 2.2.3
任何人都知道在python 2.2.3中使用SQLite的方法,例如我可以上传和导入的模块?我试过从较新版本的python中屠杀模块,但它们似乎不兼容
谢谢,
麦克
答案 0 :(得分:2)
没有开箱即用的解决方案;你要么必须将SQLlite模块从Python 2.5反向移植到Python 2.2,要么让你的web主机升级到最新的Python版本。
Python 2.2非常古老!至少出于安全原因,他们应该进行升级(自2003年5月30日起,不再需要2.2的安全修复程序!)。
请注意,您可以并行安装多个版本的Python。只需确保在脚本中使用“/ usr / bin / python25”而不是“/ usr / bin / python”。为了确保所有旧的东西仍在工作,在安装Python 2.5之后,你只需修复两个符号链接“/ usr / bin / python”和“/ usr / lib / python”,现在应该指向2.5。把它们弯回2.2,你很好。
答案 1 :(得分:1)
请看这里:http://oss.itsystementwicklung.de/download/pysqlite/
从发行说明(http://oss.itsystementwicklung.de/trac/pysqlite/browser/doc/install-source.txt)
- 的Python: Python 2.3或更高版本
醇>
你可能无法做你想做的事。
答案 2 :(得分:0)
如果您具有对Web服务器的shell访问权限,则可以构建自己的Python和SQLite版本。这将让您使用最新版本。下载源代码,然后在配置时,执行“./configure --prefix = $ HOME / packages”之类的操作。
接下来,使用.profile或.bashrc或其他任何内容来确保$ HOME / packages / bin在您的路径中排在第一位。这将导致您的私有Python覆盖您的Web服务器安装的那个。
此页面可能会为您提供有关如何在Dreamhost等服务器上执行此操作的更多信息: http://wiki.dreamhost.com/Python
答案 3 :(得分:0)
如果有人遇到这个问题,那么pysqlite和APSW都不适用于Python 2.2的原因是因为Python 2.3添加了简化的GIL API。在Python 2.3之前,需要大量代码来跟踪GIL。 (GIL是Python使用的锁,用于确保多线程时的正确行为。)
执行2.2的反向移植需要删除所有线程代码。试图使它在2.2下也是线程安全将是一场噩梦。他们引入简化的GIL API是有原因的!
我仍然对旧版Python的流行程度感到惊讶。 APSW for Python 2.3仍然定期下载。