【发布时间】:2019-07-26 12:57:08
【问题描述】:
我已经用 pip 安装了几个包(numpy/pandas/blpapi/pyarrow)。我在崇高的环境中使用 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,我都会得到相同的结果。
【问题讨论】:
-
您是否在虚拟环境中运行您的 sublime 脚本?是否安装了多个版本的python?
-
没有 sublime 脚本不在虚拟环境中运行。
-
我先安装了 python3.7.4(32 位),然后是 python3.6.2(64 位),因为 pyarrow 需要 64 位 python。 python -V 返回 Python 3.6.2。
-
在你的 sublime 脚本中 - 尝试这样做
import sys和print(sys.version)- 这会让你知道你的 sublime 脚本是运行 32 位版本还是 64 位版本。 -
正确。 3.7.4 (tags/v3.7.4:e09359112e, Jul 8 2019, 19:29:22) [MSC v.1916 32 bit (Intel)] 是我得到的。所以我的 sublime 是 32 位的,而我的 python 是 64 位的。这是否意味着我需要安装新版本的 sublime?
标签: python-3.x pandas numpy pip sys.path