Python-脚本无法加载模块并阻止解释器执行

时间:2018-11-29 17:36:03

标签: python path python-import python-module

我可以从终端访问Python解释器并导入模块,然后从中导入特定名称

python
Python 3.7.1 (default, Nov 28 2018, 11:51:47) 
[Clang 10.0.0 (clang-1000.11.45.5)] on darwin
import sklearn
from sklearn.datasets import load_iris

但是,如果我运行的脚本sklearn.py仅包含:

#!/usr/local/opt/python/libexec/bin/python
import sklearn
from sklearn.datasets import load_iris

或者如果我与脚本位于同一文件夹中,并尝试单独运行import sklearnfrom sklearn.datasets import load_iris,则会出现以下错误:

Traceback (most recent call last):
  File "sklearn.py", line 1, in <module>
    import sklearn
  File "/Users/Anonymous/Documents/sklearn.py", line 1, in <module>
    from sklearn.datasets import load_iris
ModuleNotFoundError: No module named 'sklearn.datasets'; 'sklearn' is not a package

我还可以转到其他文件夹(例如cd Downloads/),并且能够再次从解释器访问import sklearnfrom sklearn.datasets import load_iris

1)当我在同一文件夹中时,似乎脚本的存在比解释器具有优先权

2)我很困惑为什么脚本不能首先导入模块。我认为这可能与我设置PATH的方式有关,因为这有点怪异,但解释器似乎按预期工作。

我在OS X 10.14.1上。我最近使用export PATH="/usr/local/opt/python/libexec/bin:$PATH"编辑了.bash_profile文件,因此可以更轻松地通过终端访问python的自制版本。我注释掉了Python的OS X默认设置,因此它看起来像这样:

export PATH="/usr/local/opt/python/libexec/bin:$PATH"

# Setting PATH for Python 3.5
# The orginal version is saved in .bash_profile.pysave
#PATH="/Library/Frameworks/Python.framework/Versions/3.5/bin:${PATH}"
#export PATH

# Setting PATH for Python 2.7
# The original version is saved in .bash_profile.pysave
#PATH="/Library/Frameworks/Python.framework/Versions/2.7/bin:${PATH}"
#export PATH

# Setting PATH for Python 3.7
# The original version is saved in .bash_profile.pysave
#PATH="/Library/Frameworks/Python.framework/Versions/3.7/bin:${PATH}"
#export PATH

0 个答案:

没有答案
相关问题