研讨会回顾|AI驱动的DevOps云端转型:Atlassian Cloud + AI 实战指南

400-666-7732

研讨会回顾

AI驱动的DevOps云端转型:Atlassian Cloud + AI 实战指南

没有什么比现成的解决方案更香的了 - P4Python 玩家速看(用户文章转载)

来源:游戏QA   作者:向华        发布时间:2022-03-15 09:50

最近在一台新 MacBook 上部署 P4 工具链,发现 P4Python 库怎么也安装不上。

 

$ pip3 install p4python
Collecting p4python
Using cached p4python-2021.1.2128019.tar.gz (83 kB)

Building wheels for collected packages: p4python

Building wheel for p4python (setup.py) ... error

ERROR: Command errored out with exit status 1:

...

...

copying P4.py -> build/lib.macosx-10.14-x86_64-3.8

running build_ext

***********************************************

** Cannot build P4Python without SSL support **

***********************************************

Traceback (most recent call last):

File "<string>", line 1, in <module>
   
 File "/private/..../p4python/setup.py", line 475, in <module>

do_setup()
  
...
  
...
   
 File "/private/..../p4python/setup.py", line 292, in run
raise Exception("Parameter --ssl is needed")
Exception: Parameter --ssl is needed
----------------------------------------
ERROR: Failed building wheel for p4python
Running setup.py clean for p4python
Failed to build p4python

...
...
WARNING: You are using pip version 20.2.3;
however, version 22.0.3 is available.
You should consider upgrading via the

'/Library/Developer/CommandLineTools/usr/bin/python3 -m
pip install --upgrade pip'  command.

因为在另一台 Mac Mini 上是可以安装成功的。

之前成功安装的 Mac 最新也就是 macOS Big Sur,直觉告诉我应该是这台 MacBook 的系统太新了,因为它的系统是当前最新的 macOS Monterey。

但我觉得应该可以尝试解决一下,毕竟这属于 Python 库范畴的问题,先不急着下定论。

 

先看看官方文档怎么说

从 Perforce 官网可以看到两篇关于p4python 和 ssl 的文档。

Installing p4python
https://www.perforce.com/manuals/p4python/Content/P4Python/python.installation.html
Compiling P4Python with SSL support
https://community.perforce.com/s/article/3728

文档中有提到,在 2019.1 版本之后,是需要安装 OpenSSL 的库的。

第二篇文档中是用 p4python 源码编译的教学,计划作为最后一招。

再看看别人怎么说

网上搜到一个方法:

 

pip3 install --install-option="--ssl" p4python

报错:

 

error: option --ssl not recognized

又看到另一个说法,Python 版本不对,OK,那调整下Python版本试试。

手边儿在 Linux 上成功安装的 Python 版本有 3.7.7、3.8.2、3.10.2,当前本机的Python 版本是 3.8.9。

尝试换 Python 版本,安装 pyenv

brew install pyenv

试试 3.7.7

pyenv install 3.7.7

安装时,报 sendfile 报错。

Last 10 log lines:
./Modules/posixmodule.c:9197:15: error: implicit declaration of function 'sendfile' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
ret = sendfile(in, out, offset, &sbytes, &sf, flags);
再试安装 3.8.2。
同样报 sendfile 报错。
灰心哥内心 OS:难道都不能换 Python 版本了?
最后一试:
pyenv install 3.10.2

安装成功。

速度切换 local 为 3.10.2。

 

pyenv local 3.10.2

使用 Python 3.10.2 对应的 pip3 ( pip version 21.2.4 ) 安装一下 p4python。

令人失望,同样报 ssl 错误。

不折腾 Python 版本了,尝试换种姿势安装 p4python。

Perforce 官网下载 whl。

pip3 install p4python-2021.1.2128019-cp39-cp39-macosx_10_12_universal2.whl

仍旧报一样的错,想想也是,虽然是 wheel,但它跟 pip 安装,本质上是一样的。

折腾半天,应该只能按照官方文档来做一次源码编译了,并且都不知道是否有其他 dependency 的问题。

承接上文,注意到 WARNING 提到 pip 版本是 20.2.3,有新版本 22.0.3。

事到如今,没办法了,更一发试试!

 

$ /Library/Developer/CommandLineTools/usr/bin/python3 -m pip install --upgrade pip
Defaulting to user installation because normal site-packages is not writeable

Collecting pip Downloading pip-22.0.3-py3-none-any.whl (2.1 MB)
|████████████████████████████████| 2.1 MB 583 kB/s
Installing collected packages: pip
WARNING: The scripts pip, pip3 and pip3.8 are installed in

'/Users/jasonxiang/Library/Python/3.8/bin' which is not on PATH.

Consider adding this directory to PATH or, if you prefer to suppress this warning,
use --no-warn-script-location.
Successfully installed pip-22.0.3

再安装 p4python 试试。

 

$ pip3 install p4python

Successfully installed p4python-2021.1.2128019
神 ~ 奇 ~ 地 ~ 成 ~ 功 ~ 了!

值得一提的是,pip v22.x.x 版本安装库时,还会有个彩色进度条和彩色安装速率,似乎也在表达一种庆祝 

感谢阅读。

你好,我是向华。
前原神项目 P4 Admin,持续集成开发者,8 年游戏测试开发工程师。

最新文章

相关产品

分享到:
关于龙智

龙智DevSecOps解决方案

龙智深耕DevSecOps相关领域近十年,集成DevOps、ITSM、Agile管理思路及该领域的优秀工具,提供软件研发生命周期管理解决方案,以及实施、培训、升级、数据迁移、定制开发、运维等服务。

龙智致力于帮助企业实现软件开发运营一体化,并确保安全防护融入软件研发的整个生命周期中。龙智提供从产品规划与需求管理、开发,到测试、部署以及运维全生命周期的解决方案与管理工具,帮助企业科学、高效、安全地管理软件开发,更快、更好地交付软件产品。

近年来,龙智团队潜心开发,先后帮助金融、通信、互联网、汽车、芯片、游戏、医疗等行业的1000多家企业促进开发安全运营的一体化的实践。 秉承着打造开放式DevSecOps的理念,龙智与国外其他多家DevOps工具顶级厂商如Atlassian、Perforce、Mend(原WhiteSource)、CloudBees、SmartBear等合作,将国际市场上先进的工具引入中国市场,帮助企业打造量身定制的DevSecOps解决方案、ITSM解决方案,助力企业高效开发与运维。

我们的自研产品包括Confluence水印插件,Timewise-Jira计划及实际工时管理插件,Jira服务台企业微信应用插件等;我们还与全球DevOps领域领先的企业建立了合作伙伴关系,我们是:

· Atlassian全球白金合作伙伴

· Perforce中国授权合作伙伴

· Mend (原WhiteSource)中国授权合作伙伴

· CloudBees中国授权合作伙伴

· SmartBear中国授权合作伙伴