【问题标题】:Python: Running from cygwin works, while running from PyCharm doesn'tPython:从 cygwin 运行有效,而从 PyCharm 运行无效
【发布时间】:2015-10-24 21:42:13
【问题描述】:

我可以成功运行一个使用的python脚本

from sklearn.cluster import DBSCAN

来自 64 位 cygwin 终端提示,它使用 python 2.7 的 64 位构建。

当我使用 -vv 解释器选项从 64 位和 32 位 pycharm 运行相同的程序时,我得到(前 2 行是详细输出):

import numpy.linalg.linalg # precompiled from /usr/lib/python2.7/site-packages/numpy/linalg/linalg.pyc
dlopen("/usr/lib/python2.7/site-packages/numpy/linalg/lapack_lite.dll", 2);
Traceback (most recent call last):
  File "C:/Users/mack0242/Dropbox/PhD/scripts/cluster.py", line 5, in <module>
    from sklearn.cluster import DBSCAN
  File "/usr/lib/python2.7/site-packages/sklearn/__init__.py", line 57, in <module>
    from .base import clone
  File "/usr/lib/python2.7/site-packages/sklearn/base.py", line 9, in <module>
    import numpy as np
  File "/usr/lib/python2.7/site-packages/numpy/__init__.py", line 170, in <module>
    from . import add_newdocs
  File "/usr/lib/python2.7/site-packages/numpy/add_newdocs.py", line 13, in <module>
    from numpy.lib import add_newdoc
  File "/usr/lib/python2.7/site-packages/numpy/lib/__init__.py", line 18, in <module>
    from .polynomial import *
  File "/usr/lib/python2.7/site-packages/numpy/lib/polynomial.py", line 19, in <module>
    from numpy.linalg import eigvals, lstsq, inv
  File "/usr/lib/python2.7/site-packages/numpy/linalg/__init__.py", line 51, in <module>
    from .linalg import *
  File "/usr/lib/python2.7/site-packages/numpy/linalg/linalg.py", line 29, in <module>
    from numpy.linalg import lapack_lite, _umath_linalg
ImportError: No such file or directory

我已经仔细检查了文件:

/usr/lib/python2.7/site-packages/numpy/linalg/lapack_lite.dll

存在并且是 64 位。我已经在 cygwin 终端上从 pip 成功安装了 numpy、scipy 和 sklearn。

此外,PyCharm 说没有名为 sklearnmatplotlibnumpy 的模块。

【问题讨论】:

  • 您是否尝试过使用 virtualenv 并将 PyCharm 指向 virtualenv?
  • PyCharm 使用的是同一个解释器吗?查看File &gt; Settings &gt; Project Interpreter 了解详情。

标签: python numpy cygwin scikit-learn pycharm


【解决方案1】:

当我遇到类似问题时(无法在 Pycharm 中导入 numpy,但在 cygwin 控制台上),结果证明 cygwin 使用了与 PyCharm 不同的解释器。

在 PyCharm 中,我从 C:\Program Files\cygwin\usr\bin\python 配置了解释器。相比之下,cygwin 使用的是/bin/python。在 PyCharm 中点击File &gt; Settings &gt; Project: yourProjectName &gt; Project Interpreter,点击"Add local" 并找到cygwin 使用的解释器(在我的例子中为C:\Program Files\cygwin\bin\python)。

然后通过View &gt; Tools Windows &gt; Python Console 在 PyCharm 中打开 Python 控制台并尝试您的导入语句。

【讨论】:

    猜你喜欢
    • 2017-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-24
    • 2012-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多