这是一个非常平的问题。我正在使用 pdoc 为我的库创建一些文档,该库使用 PIL 进行图像处理。一切正常,除了使用 PIL 的模块,它抛出了以下内容
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/pdoc/doc.py", line 400, in submodules
module = extract.load_module(mod.name)
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/contextlib.py", line 75, in inner
return func(*args, **kwds)
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/pdoc/extract.py", line 221, in load_module
raise RuntimeError(f"Error importing {module}") from e
RuntimeError: Error importing timmaldFunctions.setup
warnings.warn(
/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/pdoc/doc.py:402: RuntimeWarning: Couldn't import timmaldFunctions.imageStuff:
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/pdoc/extract.py", line 219, in load_module
return importlib.import_module(module)
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/importlib/__init__.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
File "<frozen importlib._bootstrap>", line 991, in _find_and_load
File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 783, in exec_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
ModuleNotFoundError: No module named 'PIL'
尽管我运行了一次,但它多次抛出了那个确切的异常。只是为了检查,我用过pip3.9 show PIL
,它说WARNING: Package(s) not found: PIL
。但是,我在 PyCharm 中多次使用 PIL.Image,总是使用 python 3.9,就像我用于这个库一样。我往里看,/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages
在那里发现了 PIL。然后我确保该站点包路径位于 中sys.path
,并且确实如此。我尝试使用 Pillow(PIL 的一个分支),并确保我有一个与 python3.9 兼容的版本(我有 8.1)。但是,即使我通过 PyCharmpip3.9 install Pillow
和pip3.9 install pillow
. pip3.9 show Pillow
并pip3.9 show pillow
说它存在并且有正确的版本。但是,PyCharm 仍然表现得像没有安装一样,并抛出ModuleNotFoundError: No module named 'Pillow'
. 我也了解到 PIL 和枕头不能在同一个环境中,所以我尝试pip3.9 uninstall PIL
了,但 pip 认为包从一开始就不存在。在我看来,我有 2 个选项:获取 pdoc 和 pip 以识别 PIL,或获取 Python 以识别 Pillow。我该怎么做,还是有其他选择?提前致谢,如果您需要更多信息,请告诉我!
更新:
我使用给出的答案中的命令创建了一个 venv,然后我找到了名为 activate 的文件,用于 venv(无扩展名),并在终端中输入以下内容:source path-to-activate
,此时 venv 的名称出现在开头后面的括号中每个新的终端线。然后我进入 PyCharm 的解释器设置并在 PyCharm 上创建了一个新环境,选择“现有环境”,然后放入 venv 文件夹/bin/python3.9 的路径(这是指向真正 python3.9 的别名) . 它以它所在的项目命名该设置。我在解释器选项中切换到该设置。然后我跑了pip3.9 install pillow
来自终端(仍在使用 venv),同时使用 pip 和 pip3.9 并用新 venv 中的路径替换它们。每次我收到要求已经满足的消息时,都会确保安装了枕头。我还检查了站点包,PIL 和 Pillow-dist-info 都在那里。PyCharm 没有出错,所以它工作正常。但是,当我运行时pdoc path-to-library-folder
(仍在 venv 中),它抛出了完全相同的错误。我做错了什么吗?