如何正确使用 Path (PyCharm)

how do I correctly use Path (PyCharm)

我正在使用 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(文件 > 默认设置 > 项目解释器)

谢谢!

如果您执行裸导入(即 import pathlib),则 Path class 不在脚本的本地命名空间中。它是模块对象 pathlib 属性 。在这种情况下要成功访问 Path,您必须 显式 通过其父对象引用它。即:pathlib.Path.

此外,我不熟悉 bpython,但您在终端会话中描述的内容不会出现在 IPython 中。事实上,我认为在 any 交互环境中导入库会隐式导入其所有子对象的设计非常糟糕。第一,它有污染命名空间的风险。第二,它会导致语言的新老用户混淆。