为什么命令提示符导入与崇高文本导入不同?

时间:2019-07-26 12:57:08

标签: python-3.x pandas numpy pip sys.path

我用pip安装了几个软件包(numpy / pandas / blpapi / pyarrow)。我在崇高的环境中使用Windows 64位计算机python3.6。 虽然所有软件包在命令提示符下均显示为已正确导入,但我的崇高脚本未找到某些软件包。

要尝试解决此问题,我使用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,我都得到相同的结果。

1 个答案:

答案 0 :(得分:0)

问题似乎是您的default版本的python指向32-bit version-即,当您说python时,Windows系统会执行32位版本。

一种解决方法是指定64 bit version的完整路径-即以

启动脚本
C:\PATH\TO\64-BIT-VERSION\PYTHON.EXE your_script.py 
从命令行

另一个选择是将Windows环境变量设置为默认指向64 bit version。这个link应该会帮助