Python 2.7 64位搜索路径

时间:2018-02-15 17:42:32

标签: python python-2.7 dll-search-path

我正在尝试在运行Python 2.7 64位时加载sqlite 64位。我可以以交互方式进行此操作,但不是来自脚本。

交互式:

$ /c/Python27-64/python
Python 2.7.12 (v2.7.12:d33e0cf91556, Jun 27 2016, 15:24:40) [MSC v.1500 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import sqlite3
>>>

从这个脚本中,只有一行,与python shell相同:

import sqlite3

从命令行运行:

$ /c/Python27-64/python test.py
Traceback (most recent call last):
  File "test.py", line 1, in <module>
    import sqlite3
  File "c:\Python27-64\lib\sqlite3\__init__.py", line 24, in <module>
    from dbapi2 import *
  File "c:\Python27-64\lib\sqlite3\dbapi2.py", line 28, in <module>
    from _sqlite3 import *
ImportError: DLL load failed: %1 is not a valid Win32 application.

脚本显然找到了32位dll。但为什么?交互式和单行脚本有什么区别?如何修改DLL搜索?

1 个答案:

答案 0 :(得分:0)

如果遇到任何人,问题是我运行脚本的目录中的文件_sqlite3.pyd。有人能解释为什么Python会创建自己的Windows dll版本吗?这是简单包装,以便Python可以调用它吗?也许是一个ctypes包装?