Browsed by
Category: 杂七杂八

解决新版本Python依赖SSL1.1.1版本问题

解决新版本Python依赖SSL1.1.1版本问题

Python3.10以上版本安装时,要求openssl版本是1.1.1以上。一般操作系统默认的版本是1.0.2,可以用openssl version命令看一下。

openssl version
OpenSSL 1.0.2k-fips 26 Jan 2017

找了一圈,终于搞定这个问题。首先要下载并安装openssl1.1.1版本
wget https://www.openssl.org/source/openssl-1.1.1i.tar.gz
tar -xvzf openssl-1.1.1i.tar.gz
cd openssl-1.1.1i
./config
make && make install

安装完成后,再次运行openssl version发现还是1.0.2版本。出现这情况并不是没有升级成功。而是该会话还是原来的会话,用的1.0.2版本。这时新建一个会话,在运行openssl version发现变成了1.1.1版本了。这时在去python的安装目录

./configure
make && make install
成功安装

OpenCore将旧MAC设备救活

OpenCore将旧MAC设备救活

最近MACOS的新版本Ventura和Sonoma都不支持旧的MAC型号,最新的17年的设备都无法安装这两个新版本,导致无法安装最新的应用,基本将17年的MAC设备判了死刑。但是,使用OpenCore可以让旧的MAC设备安装Ventura和Sonoma,可以延续旧MAC设备的生命力。

OpenCore最新的版本目前是1.0.1,下载地址,选择OpenCore-Patcher-GUI.app.zip下载即可。下载完成后,打开app,出现界面

首先点解左上角第一个,Build and Install OpenCore,之后选择Install OpenCore,选择Install to Disk

之后选择本机硬盘即可。

之后需要创建U盘启动盘,此处不建议使用这个软件的Create MacOS Installer,自己创建一个比较好。我用这个创建的U盘启动盘,每次安装都报错。首先下载安装包,然后运行命令行sudo /Applications/Install\ macOS\ Sonoma.app/Contents/Resources/createinstallmedia –volume /Volumes/MyVolume,黄色的名字和macos版本相同。

之后重启mac,并立即按住 Option (Alt) 键,选择EFI Boot这个选项,不要直接选择新的版本安装。点击后,在选择新的版本安装。安装过程以及安装完成后,字体非常小,而且会比较卡,这时需要运行OpenCore,点击右上角的Post-Install Root Patch就好了。

AWS Lambda授权S3操作

AWS Lambda授权S3操作

AWS Lambda操作S3的文件,需要提前授权,否则会提示没权限,无法读取或写入。
1、在S3创建一个bucket
2、打开IAM console,选择创建一个role
3、然后选择Trusted entity – AWS Lambda;Permissions – AWSLambdaExecute;Role name – lambda-s3-role

然后就可以了,下面是一个简单的写入S3的python代码
import json, boto3,os, sys, uuid
from urllib.parse import unquote_plus

s3_client = boto3.client(‘s3’)

def lambda_handler(event, context):
some_text = “test”
bucket_name = “my_buck_name”
file_name = “my_test_file.csv”
lambda_path = “/tmp/” + file_name
s3_path = “output/” + file_name
os.system(‘echo testing… >’+lambda_path)
s3 = boto3.resource(“s3”)
s3.meta.client.upload_file(lambda_path, bucket_name, file_name)

return {
    'statusCode': 200,
    'body': json.dumps('file is created in:'+s3_path)
}
AWS Lambda添加python依赖包

AWS Lambda添加python依赖包

在AWS Lambda运行python程序,可能会遇到没有安装依赖包的情况。

有两种方法解决:

1、将依赖包一起打包上传

2、将依赖包部署在Lambda的层里,然后在函数引用相应的层。

自然第二种方案好一些,不用每次都打包一堆不需要的依赖包上传。创建层的依赖包步骤如下

1、找一个linu虚拟机,下载依赖包

python3 -m venv test_venv

source test_venv/bin/activate

mkdir -p test_venv/python/lib/python3.7/site-packages

cd test_venv/python/lib/python3.7/site-packages

pip install xlrd -t .

zip -r ../requests_lambda_layer.zip *

2、将所有依赖包放在zip文件包里的python目录里

3、在AWS层(Layer)上传这个依赖包

4、然后在Lambda函数下边的层里选择这个依赖包即可。

贵州游记–茂兰景区

贵州游记–茂兰景区

茂兰景区

茂兰最近开发的比较好。住宿一般是在五眼桥附近住的农家乐,因为好几条线路都是从五眼桥出发。住一般有如下几条线路,到了茂兰每个农家乐和景区买票的地方都会有地图,会标注出几条线路怎么走。进景区还要签个协议,开车仅用于开到预定住宿的农家乐一段,不能走其他路线。

1、金狮洞——九洞天——神仙洞——黑洞,此线路主要是看溶洞,需要请个本地向导,100块,大约2个小时能转完
2、尧所古桥——黄杨沟——拉滩瀑布,此线路主要看风景,找个景区的游览车就行,买门票时强制买缆车的票了,大约1个小时
3、五眼桥——青龙涧——青龙瀑——青龙潭——青龙桥,这个也主要是看风景,大约1个小时差不多,我们去的时候发大水,都去不了
4、燕子窟——槽谷森林——野兰谷——漏斗森林——旺牌山,这条线路时丛林穿越线路,需要请本地向导,到了对端后可以坐车回来。需要1天的时间,对体力和耐力有较高要求

去青龙涧的路淹了

绿色的河流

尧所古桥

随后本打算开车直接到兴义,但路途较远,中间有个平塘天眼感觉可以看看,但去了后感觉巨坑,没事最好别去。
坑1:门票免费,但只能做专用大巴进去看,普通人不能只买大巴票,只能买联票,包含一堆不靠谱的店

坑2:门票离入口步行10分钟,先去入口的话,在去买门票的话,至少要耽误30分钟,就不能建到一起吗
坑3:手机数码相机不让带,只能带胶片相机,怕影响天眼工作,所以要空手进去,这个提前规定就忍了
坑4:去的时候下了车不能直接去看,回来时候下了车也不能直接出来,要绕一大圈购物的柜子
坑5:大巴车不满不走,一定要满了,碰到人少的时刻,要等半小时

linux下运行pyinstaller故障解决

linux下运行pyinstaller故障解决

最近,需要在linux系统下,使用pyinstaller生成py文件的可执行文件,但遇到一些报错,最后总算解决。
首先运行pyinstaller –onefile test.py,显示报错信息
OSError: Python library not found: libpython3.7.so.1.0, libpython3.7mu.so.1.0, libpython3.7m.so.1.0. This would mean your Python installation doesn’t come with proper library files. This usually happens by missing development package, or unsuitable build parameters of Python installation.

搜了搜,需要安装python-devel,运行yum install python-devel,结果显示找不到这个包。后来又搜了搜,是使用./configure –enable-shared重新编译python,编译后,make,make install安装好后,运行python3,又报错
python3: error while loading shared libraries: libpython3.7m.so.1.0: cannot open shared object file: No such file or directory

这时,
cd /etc/ld.so.conf.d
vi python3.conf
输入/usr/local/lib,然后:wq保存退出
运行ldconfig

之后在运行python3就没问题了
python3
Python 3.7.4 (default, Sep 6 2019, 09:10:20)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-36)] on linux
Type “help”, “copyright”, “credits” or “license” for more information.

运行pyinstaller也好了pyinstaller –onefile test.py

Sublimetext安装highlight插件

Sublimetext安装highlight插件

因为要把一些代码复制到word文档里,直接复制的话,一些高亮、颜色渲染的操作在word里就会失效,直接变成白纸黑字,效果差很多。在网上搜了搜,Sublimetext安装highlight插件后,可以多出两个选项,一个是“Copy as RTF”,这个是可以直接copy到word文档,一个是“Copy as HTML”,这个是copy成HTML源代码,直接放到HTML文件里

 

安装要使用到PackageControl,但这个网站被墙了,因此需要翻墙,下载Package Control.sublime-package这个文件(本网站下载地址免翻墙),然后点击sublime的Preference– Browse Packages,打开文件夹,把下载的文件拷贝到Installed Packages这个文件夹下面,然后关闭sublime程序,在打开,就可以自动安装Package Control这个插件了。安装好后,可以在Tools—Command Palette输入Package Control: Install Package,这时候会读取网站里面的一个channel_v3.json文件,依然是被墙无法下载。解决办法是下载到本地,然后修改PackageControl里面的配置文件。点击Preference—Package Settings—Package Control—Settings User,输入

"channels":
[
"/Users/mac/Desktop/channel_v3.json"
],

为什么不编辑Settings-Default?因为MACOS有权限控制,无法编辑,windows没有这个问题,可直接编辑。

然后回到上一步,在Package Control: Install Package里输入highlight搜索,一般第一个结果就是,点击安装,这时候打开控制台(按Ctrl+~),可能会出现Error downloading package. HTTP exception InvalidCertificateException (Host codeload.github.com returned an invalid certificate ([SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:548)))wnloading package错误,导致无法下载,这是由于python版本无法支持tsl1.2版本导致,解决办法是在Preference—Package Settings—Package Control—Settings User输入

"downloader_precedence":
{
"linux": [ "curl", "urllib",    "wget" ],
"osx": [ "curl", "urllib" ],
"windows": [ "wininet" ]
},

可强制使用系统自带下载命令。然后就可以顺利的安装highlight插件了。

安装好后,Preference—Package Settings—SublimeHighlight—Settings Default中可以修改复制的样式,比较常见的是

  • 主题”theme”: “default”,支持的主题样式在作者的gitbub页面有截图
  • 复制过程中要不要带行号”linenos”: false,如果需要,把false改为”inline”
本地化安装rpm包和python包

本地化安装rpm包和python包

最近因为要在内网安装一堆rpm包和python包,有些包依赖包太多,从外网考到内网又比较麻烦,因此就想一次尽量把所有依赖包都下载完,一次传进内网。因此最好在公有云或自己PC上装台虚机,操作系统尽量和内网OS一致,省的改一堆参数。

rpm包手工下载地址:https://pkgs.org,手工安装方式:rpm -ivh a.rpm

使用yum方式把所有依赖包都下载的命令:

yum -y install ansible --downloadonly --downloaddir=./

Python包手工下载地址:https://pypi.org,手工安装方式:如果是二进制包,则用python setup.py install方式,如果是wheel方式,则用pip install a.whl方式

pip下载所有依赖包的命令:pip download ansible

pip安装的命令:

pip install --no-index --find-links=file:./ ansible
比特币云挖矿

比特币云挖矿

最近比特币(BTC,Bitcoin)价格又创新高,达到了15000美元。自己直接买币的话,风险太高,要是买设备挖币的话,太麻烦。一个是维护需要一定的技术实力,一个是电费较高。最近有个很火的云挖币公司GenesisMiningHashflare,可以购买算力,挖比特币BTC,莱特币LTC,以太坊Ethereum等币种,算了算还挺合算的。

以Hashflare BTC和Genesis ETH为例:
一、Hashflare
购买1年2TH/s的SHA256算力,需要300美元现在涨价了,需要440美元。一天大约能挖0.0003326个BTC,扣除0.00004966BTC的维护费用,实际到帐0.00028294BTC。按照现在16000美元一个算,一天的回报是4.52美元。这样大约7197天可以回本。总的来看,投资回报率是一年大约500%376%,已经还是超过正常P2P理财产品太多了,而且可以信用卡付款,如果配合银行的信用卡羊毛,那投资回报率会更高,并且不占用个人的外汇额度。安全起见,在设置里面把Google的二次认证打开。

二、Genesis ETH
购买2年5MH/s的算力,需要150美元,使用优惠码(Coupon Code)EkG2fD,可以优惠3%,即145.5美元。一天大约能挖0.00085个ETH,按照现在470美元一个算,一天的回报是0.4美元。这样大约364天可以回本,也就是说一年可以回本,一年赚145.5美元。总的来看,投资回报率是2年100%,也就是一年大约41.4%。记住,使用优惠码(Coupon Code)EkG2fD可以优惠3%。

新西兰游记–瓦纳卡湖

新西兰游记–瓦纳卡湖

瓦纳卡湖(Lake Wanaka)和哈威亚湖相邻(Lake Hawea),但感觉瓦纳卡更热闹,更商业一些,哈威压则平静许多。许多来这边的人一般都会住在瓦纳卡,酒店、饭店比较多一些。瓦纳卡湖这边有两条布道:Roys Peak track和Rob Roy Glacier track。Roys Peak track就是爬山,上去下来估计要5、6个小时,但离瓦纳卡比较近。而Rob Roy Glacier track则景色要美很多,但离瓦纳卡比较远。开车要2个小时,还要经过很长一段石子路。瓦纳卡镇的住户

瓦纳卡湖岸

去瓦纳卡机场路上会路过一个薰衣草庄园,我去的不是时候,薰衣草没开,但有几头草泥马在

去Rob Roy Glacier track要走很长一段石子路,道路两边都是农场,养着牛和羊,虽然开得比较辛苦,比较值

走Rob Roy Glacier track的小路

走到头,会看见很高的一个瀑布,和一大片冰川

著名的瓦纳卡的孤独的树