【问题标题】:Why does command prompt import differ from sublime text import?为什么命令提示符导入与 sublime 文本导入不同?
【发布时间】: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 sysprint(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


【解决方案1】:

问题似乎是您的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 应该会有所帮助

【讨论】:

  • 问题已解决。我无法按照您的建议启动我的脚本,因为 Python3.7 是在受管理员权限保护的区域下载的。我只是删除了Python3.7。我现在有一个功能齐全的 BLOOMBERG-LINEDATA-PYTHON 管道。非常感谢!
猜你喜欢
  • 2015-02-18
  • 2019-07-24
  • 1970-01-01
  • 1970-01-01
  • 2021-09-04
  • 2014-12-13
  • 1970-01-01
  • 1970-01-01
  • 2013-07-17
相关资源
最近更新 更多