为什么命令提示符导入与 sublime 文本导入不同?
Why does command prompt import differ from sublime text import?
我已经用 pip 安装了几个包 (numpy/pandas/blpapi/pyarrow)。我在 sublime 环境中使用 Windows 64 位机器 python3.6。
虽然所有包都显示为在命令提示符中正确导入,但我的 sublime 脚本找不到某些包。
为了尝试解决这个问题,我使用了 sys.path.insert 并更改了脚本的名称,但无济于事。下面的回溯描述了我所看到的:
命令提示符中的代码:
>>> import pyarrow
>>> import pandas
>>>
Sublime 中的代码 (better_name.py):
print('Hi')
import numpy
import pandas
better_name.py的输出:
Hi
Traceback (most recent call last):
File "C:\Users\Documents\better_name.py", line 4, in <module>
import pandas
ModuleNotFoundError: No module named 'pandas'
获取命令提示符中的路径:
>>> import os
>>> import numpy
>>> path = os.path.dirname(numpy.__file__)
>>> print(path)
C:\Users\AppData\Local\Programs\Python\Python36\lib\site-packages\numpy
>>> import pandas
>>> path = os.path.dirname(pandas.__file__)
>>> print(path)
C:\Users\AppData\Local\Programs\Python\Python36\lib\site-packages\pandas
正在尝试使用 sys.path.insert :
print('Hi')
import sys
import numpy
import os
sys.path.insert(1, r"C:\Users\AppData\Local\Programs\Python\Python36\lib\site-packages\pandas")
输出:
C:\Users\Documents>better_name.py
Hi
Traceback (most recent call last):
File "C:\Users\Documents\better_name.py", line 7, in <module>
import pandas
ModuleNotFoundError: No module named 'pandas'
无论将 sys.path.insert 中的参数更改为 0,我都会得到相同的结果。
问题似乎是您的 default
版本的 python 指向 32-bit version
- 即当您说 python
时,您的 windows 系统执行32 位版本。
一种解决方法是指定 64 bit version
的完整路径 - 即以
启动脚本
C:\PATH\TO-BIT-VERSION\PYTHON.EXE your_script.py
从命令行。
另一个选项是将您的 windows 环境变量设置为默认指向 64 bit version
。这 link 应该会有所帮助
我已经用 pip 安装了几个包 (numpy/pandas/blpapi/pyarrow)。我在 sublime 环境中使用 Windows 64 位机器 python3.6。 虽然所有包都显示为在命令提示符中正确导入,但我的 sublime 脚本找不到某些包。
为了尝试解决这个问题,我使用了 sys.path.insert 并更改了脚本的名称,但无济于事。下面的回溯描述了我所看到的:
命令提示符中的代码:
>>> import pyarrow
>>> import pandas
>>>
Sublime 中的代码 (better_name.py):
print('Hi')
import numpy
import pandas
better_name.py的输出:
Hi
Traceback (most recent call last):
File "C:\Users\Documents\better_name.py", line 4, in <module>
import pandas
ModuleNotFoundError: No module named 'pandas'
获取命令提示符中的路径:
>>> import os
>>> import numpy
>>> path = os.path.dirname(numpy.__file__)
>>> print(path)
C:\Users\AppData\Local\Programs\Python\Python36\lib\site-packages\numpy
>>> import pandas
>>> path = os.path.dirname(pandas.__file__)
>>> print(path)
C:\Users\AppData\Local\Programs\Python\Python36\lib\site-packages\pandas
正在尝试使用 sys.path.insert :
print('Hi')
import sys
import numpy
import os
sys.path.insert(1, r"C:\Users\AppData\Local\Programs\Python\Python36\lib\site-packages\pandas")
输出:
C:\Users\Documents>better_name.py
Hi
Traceback (most recent call last):
File "C:\Users\Documents\better_name.py", line 7, in <module>
import pandas
ModuleNotFoundError: No module named 'pandas'
无论将 sys.path.insert 中的参数更改为 0,我都会得到相同的结果。
问题似乎是您的 default
版本的 python 指向 32-bit version
- 即当您说 python
时,您的 windows 系统执行32 位版本。
一种解决方法是指定 64 bit version
的完整路径 - 即以
C:\PATH\TO-BIT-VERSION\PYTHON.EXE your_script.py
从命令行。
另一个选项是将您的 windows 环境变量设置为默认指向 64 bit version
。这 link 应该会有所帮助