【发布时间】:2018-07-02 05:18:02
【问题描述】:
免责声明:我不是 Windows 专家,所以这可能是 Windows 特有的东西。
我观察到一种情况,我可以在交互模式下导入模块,但不能在从文件请求时导入。这是foo.py的全部内容:
#!/usr/bin/env python
import pyftdi
当我尝试在 Python 3.6.4 中运行它时,它失败了:
E:\>py foo.py
Traceback (most recent call last):
File "foo.py", line 2, in <module>
import pyftdi
ImportError: No module named pyftdi
...但是当我以交互方式导入模块时,它成功了:
E:\>py
Python 3.6.4 (v3.6.4:d48eceb, Dec 19 2017, 06:04:45) [MSC v.1900 32 bit (Intel)]
on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import pyftdi
>>>
(FWIW,在 Mac OS X 下重复此操作时我没有收到错误。)
有什么想法吗?
【问题讨论】:
-
通过使用shebang
#!/usr/bin/env python,您可以在启动器中搜索PATH以查找python.exe。将 shebang 更改为#!/usr/bin/python3或只是#!python3以强制启动器使用已安装的 3.x 的最高版本。 -
@eryksun:谢谢 - 这解释了为什么脚本与交互式运行不同的版本。
标签: python windows python-module