我正在使用PyCharm 2018.1.4
如果我写
from pathlib import Path
p = Path('.')
运行正常。
另一方面,如果我写
import pathlib
p = Path('.')
我明白了
NameError: name 'Path' is not defined
我想通过使用 import pathlib 来导入完整的库,包括 Path 。
与终端会话相比:
$ bpython
bpython version 0.17.1 on top of Python 3.6.4 /Users/fanta4/anaconda3/bin/python
>>> import pathlib
>>> p = Path('.')
>>>
没问题。
还有python:
Nick-iMac:~ fanta4$ which python
/Users/fanta4/anaconda3/bin/python
Nick-iMac:~ fanta4$ python
Python 3.6.4 |Anaconda, Inc.| (default, Jan 16 2018, 12:04:33)
[GCC 4.2.1 Compatible Clang 4.0.1 (tags/RELEASE_401/final)] on darwin
>>> import pathlib
>>> p = Path('.')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'Path' is not defined
PyCharm中的问题在哪里?
在PyCharm中,我看到了python 3.6(文件>默认设置>项目解释器)
谢谢!
答案 0 :(得分:0)
如果您进行裸导入(即import pathlib
),则Path
类不在脚本的本地名称空间中。它是模块对象pathlib
的属性。在这种情况下,要成功访问Path
,必须明确地通过其父对象对其进行引用。即:pathlib.Path
。
此外,我对bpython
并不熟悉,但是您在终端会话中描述的内容并没有出现在IPython
中。实际上,我认为在 any 交互式环境中导入库会隐式地导入其所有子对象,这是非常糟糕的设计。第一,它有污染命名空间的风险。第二,它会引起新旧用户的混淆。