Mac终端运行Python报'module' object is not callable如何解决
错误1:TypeError: 'module' object is not callable
成因
导入语句import pathlib as Path是将pathlib整个模块起别名为Path,后续代码中直接写Path('xxx')本质是尝试调用模块对象,而模块本身不可调用,因此抛出类型错误。Path是pathlib模块下提供的路径类,并非模块本身。
修复方案
二选一即可:
- 直接导入模块下的Path类,是最常用的写法:
from pathlib import Path mypath = Path('users/pranav/Desktop/sir/samplenames.txt')
- 保留导入整个模块的写法,调用时明确指定类:
import pathlib mypath = pathlib.Path('users/pranav/Desktop/sir/samplenames.txt')
错误2:AttributeError: 'list' object has no attribute 'dirname'
成因
sys.path是Python存储模块搜索路径的列表类型对象,本身不存在dirname()方法,属于概念混淆:dirname()是路径处理方法,归属于os.path等路径处理模块,和sys.path这个列表没有关联。
修复方案
根据排查需求选对应写法:
- 仅需查看Python模块搜索路径列表,直接打印对象即可:
import sys print(sys.path)
- 若要获取某路径的上级目录,需搭配
os.path.dirname()使用,例如获取Python解释器所在目录:
import sys import os print(os.path.dirname(sys.executable))
可运行的完整修正代码
额外注意:macOS系统标准用户目录首字母为大写,即路径应为/Users/xxx而非/users/xxx,如果后续报文件不存在可优先检查路径大小写问题。
from pathlib import Path mypath = Path('/Users/pranav/Desktop/sir/samplenames.txt') # 可通过exists方法验证路径是否有效 print(mypath.exists())
内容的提问来源于stack exchange,提问作者pvp
相关产品推荐
相关产品推荐

