pip 命令错误:导入:未找到命令且意外标记附近存在语法错误,环境:pyenv

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

当我尝试在我的系统上运行 pip 时,即使在重新安装后也遇到问题

pyenv
。具体来说,我收到以下错误:

/Users/[my_username]/.pyenv/versions/3.12.3/bin/pip: line 4: import: command not found
/Users/[my_username]/.pyenv/versions/3.12.3/bin/pip: line 5: import: command not found
from: can't read /var/mail/pip._internal.cli.main
/Users/[my_username]/.pyenv/versions/3.12.3/bin/pip: line 10: syntax error near unexpected token `('
/Users/[my_username]/.pyenv/versions/3.12.3/bin/pip: line 10: `    sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])'

系统详情

Details:

Python Version: 3.12.3
Environment: pyenv
Operating System: [M1, macOS 12.7.6]
pip Path: /Users/[my_username]/.pyenv/versions/3.12.3/bin/pip

指向错误的脚本

#! /Users/[my_username]/.pyenv/versions/3.12.3/bin/python3.12
# -*- coding: utf-8 -*-

import re
import sys
from pip._internal.cli.main import main

if __name__ == '__main__':
    # Remove the '-script.pyw' or '.exe' suffix from the script name
    sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
    # Call the main function from pip and exit with its return code
    sys.exit(main())


采取的步骤:

  1. 已验证 pip 位于正确的目录中。
  2. 检查了 pip 脚本是否存在语法错误。
  3. 尝试使用
    pyenv
    ALWAYS
  4. 重新安装 pip

问题:

  1. 什么可能导致这些错误?以及如何使用 pip 解决问题?
python python-3.x pip
1个回答
0
投票

帖子中没有错误消息,我正在盲目地解决/帮助。

你没有使用正确的方法。 pip.main() 方法以某种方式设为私有。 pip.main() 不是公共接口,并且不受支持。使用子进程。 https://stackoverflow.com/questions/47059526/should-i-use-pip-main-or-subprocess-call-to-invoke-pip-commands#:~:text=pip.main%28%29% 20是%20不是%20a%20public%20接口%2C,并且%20是%20不受支持。%20使用%20a%20子进程

您必须通过 python 调用命令行 pip 才能实现额外的自动化。 sys.subprocess()

无论如何,你的 pip 用例都很糟糕。

最好的Python实践是‘冻结’一个近乎完美的Python环境。

pip freeze > requirements.txt

迈向新的空旷环境。

pip install -r requirements.txt

“requirements.txt”被智能 CI/CD 服务普遍认可,助力容器化

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