ubuntu+pycharm+pypbc
在方案实现过程中需要在python上使用双线性群,找到pypbc库,但是这个库只能在linux环境下部署(据说windows也可以,但是很麻烦)。虚拟机又耗电太快且卡顿,所以想要试试在pycharm用WSL的环境。下载过程对我来说也比较麻烦,尝试了几次,把整个过程记录下。
首先下载WSL(ubuntu 22.04.3 TLS),直接在Microsoft store下载。
1. 安装虚拟环境
也可以直接安装在docker不需要安装虚拟环境,跳过这一步,但是这样可以便于后续环境的管理。
-
WSL自带Python3没有pip,首先需要安装pip。
sudo apt install python3-pip
如果有以下报错的话,执行命令
sudo apt-get update
sudo apt-get upgrade
-
利用刚装好的pip3安装Python的虚拟环境包virtualenv。 切换至root创建虚拟环境,执行命令
pip install virtualenv
pip install virtualenvwrapper
python3 -m virtualenv crypto_pbc
source crypto_pbc/bin/activate
激活虚拟环境 切换到原来的用户继续使用即可。
参考: zhuanlan.zhihu.com/p/98906073
以下操作在(**crypto_pbc**)
上
2. 安装pypbc库
2.1 安装依赖库
pypbc基于GMP和PBC,PBC依赖gmp,gmp依赖M4,bison,flex,所以先安装M4、flex和bison。
sudo apt-get install M4
sudo apt-get install flex
sudo apt-get install bison
2.2 安装GMP
我就下载在当前用户目录下
sudo wget https://gmplib.org/download/gmp/gmp-6.1.2.tar.lz
# 转到下载目录执行命令
lzip -d gmp-6.1.2.tar.lz
tar -xvf gmp-6.1.2.tar
cd gmp-6.1.2
./configure
make
make check
sudo make install
2.3 安装PBC
回到用户目录
wget https://crypto.stanford.edu/pbc/files/pbc-0.5.14.tar.gz
# 转到下载目录执行命令
tar -xvf pbc-0.5.14.tar.gz
cd pbc-0.5.14
./configure
make
sudo make install
2.4 安装pypbc
-
从Github下载pypbc源码,命令如下
git clone https://github.com/debatem1/pypbc.git # 适配python3.8,可能还有3.9 git clone https://github.com/Jemtaly/pypbc.git # 适配python3.10 作者说这个库没有维护,可能不安全,但是我没有找到更好的替代品 # 使用第二个库 # Element(self.pairing, G1, str(c1)) 中value要用str而且不能用value # from_hash(pairing: Pairing, type: int, data: bytes) 注意 data要用bytes,可以使bytes=str.encode(),且不能用data=
出现以上问题我试了两种办法:
-
可以配置
git
代理,原因linux 子系统
无法使用127.0.0.1
访问windows
系统上的服务 解决办法: 运行cat /etc/resolv.conf
, 复制打印出来的nameserver
后面的地址xxx,比如172.22.192.1
执行命令git config --global http.proxy socks5://172.22.192.1:7890
-
输入命令
git config --global --unset http.proxy
清空代理,然后按照以下方式更新,sudo add-apt-repository ppa:git-core/ppa sudo apt update sudo apt install git
两种办法都是突然可以又突然不可以,看运气吧-^- 也有可能是网络问题,我等了一会又可以了 实在不行就下载后解压 参考:msdemt.github.io/p/wsl-ubunt…
-
-
转到下载目录(
cd pypbc
),执行下列命令sudo /home/moondayc/crypto_pbc/bin/python3 setup.py install sudo /home/moondayc/crypto_pbc/bin/pip3 install pypbc # 注意:使用完整路径/home/moondayc/crypto_pbc/bin/xx 才能下载到虚拟环境中,不然可能在后面使用WSl虚拟环境时,无法识别pypbc。
参考:www.cnblogs.com/koalazb/art…
如果显示没有该模块,尝试重启。
如果遇到以下报错,
回到命令行执行
export LD_LIBRARY_PATH=/usr/local/lib
如果在ubuntu上(虚拟环境下)python可以使用import pypbc
,就是成功了,进入下一步。
3. pycharm配置
在pycharm的python解释器里选择WSL,找到对应的python就可以了,可以用在虚拟环境里通过 which python
找到具体路径。
选择虚拟环境对应路径。
以上的安装过程都是从网上各个链接汇总,然后自己试出来的,因为反复尝试,再加上水平有限可能有些纰漏,如果有任何问题,欢迎指教。
转载自:https://juejin.cn/post/7367635686937378867