当我尝试在我的系统上运行 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())
采取的步骤:
pyenv
ALWAYS问题:
帖子中没有错误消息,我正在盲目地解决/帮助。
你没有使用正确的方法。 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 服务普遍认可,助力容器化