pip freeze 抛出“目录名称无效”

问题描述 投票:0回答:4

在终端中运行

pip freeze
会引发以下错误(完整回溯):

PS C:\Users\lhott> pip freeze
ERROR: Exception:
Traceback (most recent call last):
  File "C:\Users\lhott\AppData\Local\Programs\Python\Python310\lib\site-packages\pip\_internal\cli\base_command.py", line 167, in exc_logging_wrapper
    status = run_func(*args)
  File "C:\Users\lhott\AppData\Local\Programs\Python\Python310\lib\site-packages\pip\_internal\commands\freeze.py", line 87, in run
    for line in freeze(
  File "C:\Users\lhott\AppData\Local\Programs\Python\Python310\lib\site-packages\pip\_internal\operations\freeze.py", line 43, in freeze
    req = FrozenRequirement.from_dist(dist)
  File "C:\Users\lhott\AppData\Local\Programs\Python\Python310\lib\site-packages\pip\_internal\operations\freeze.py", line 237, in from_dist
    req, comments = _get_editable_info(dist)
  File "C:\Users\lhott\AppData\Local\Programs\Python\Python310\lib\site-packages\pip\_internal\operations\freeze.py", line 164, in _get_editable_info
    vcs_backend = vcs.get_backend_for_dir(location)
  File "C:\Users\lhott\AppData\Local\Programs\Python\Python310\lib\site-packages\pip\_internal\vcs\versioncontrol.py", line 238, in get_backend_for_dir
    repo_path = vcs_backend.get_repository_root(location)
  File "C:\Users\lhott\AppData\Local\Programs\Python\Python310\lib\site-packages\pip\_internal\vcs\git.py", line 501, in get_repository_root
    r = cls.run_command(
  File "C:\Users\lhott\AppData\Local\Programs\Python\Python310\lib\site-packages\pip\_internal\vcs\versioncontrol.py", line 650, in run_command
    return call_subprocess(
  File "C:\Users\lhott\AppData\Local\Programs\Python\Python310\lib\site-packages\pip\_internal\utils\subprocess.py", line 141, in call_subprocess
    proc = subprocess.Popen(
  File "C:\Users\lhott\AppData\Local\Programs\Python\Python310\lib\subprocess.py", line 966, in __init__
    self._execute_child(args, executable, preexec_fn, close_fds,
  File "C:\Users\lhott\AppData\Local\Programs\Python\Python310\lib\subprocess.py", line 1435, in _execute_child
    hp, ht, pid, tid = _winapi.CreateProcess(executable, args,
NotADirectoryError: [WinError 267] The directory name is invalid

我有Python 3.10.2。

pip freeze
直到今天都工作得很好,我不明白为什么。我最近更新了它,但我不知道为什么会导致这种情况。我也可以毫无问题地安装软件包
pip install
。例子: enter image description here

尝试过的解决方案:

  • 我尝试过重新启动我的笔记本电脑。
  • 以管理员权限运行终端。
python pip
4个回答
2
投票

我确实找到了答案。 @Greg7000说

Maybe one of your dependency is badly installed
实际上给了我一个提示。

我安装了一个依赖项(朋友的包),我通过在相应文件夹上按删除来手动卸载它,而不是执行

pip uninstall
。 这可能会导致错误“目录名称无效”。即使在手动删除相应的文件夹后,使用
pip uninstall
也能解决问题。


2
投票

我过去实际上也遇到过类似的问题,我通过升级 PIP 解决了

pip install pip --upgrade

1
投票

就我而言,它是 Python 3.8 和 3.11 包的混合。使用

pip list
查询包并查找任何奇怪的引用。在“可编辑项目位置”列下,我找到了 3.8 包位置引用。

使用

pip uninstall <PACKAGE_NAME> -y
手动卸载奇怪的软件包组合。


0
投票

要添加@FluidMechanics Potential Flows的答案,运行

pip freeze --debug
可以让我获取有关错误安装的软件包的信息。

© www.soinside.com 2019 - 2024. All rights reserved.