Python mac运行 pygame 空白, 图片不显示内容 解决方案

 mac  Python mac运行 pygame 空白, 图片不显示内容 解决方案已关闭评论
10月 092019
 

问题描述: 运行pygame含图片相关的程序,图像不显示。

错误产生环境:macOS MOjave

问题原因:Pygame与MacOS Mojave 不兼容 #见 https://github.com/pygame/pygame/issues/555

可以使用下面一行语句测试是否是这个原因,运行系统示例代码,打开一个窗口,可以听到声音和音乐,但一直是黑色屏幕或白色屏幕表面
python -m pygame.examples.aliens

网上的解决方案:

  1. 将操作系统降级为macOS High Sierra
  2. 安装Miniconda虚拟环境运行pygame

以上方法都比较坑,其实如果为了现在可运行pygame程序,可以使用下面的方法:暂时先安装pygame 2.0的dev版本,等后续2.0正式版本出来后再更新。

以下命令安装pygame 2.0.0.dev4版本:

python3 -m pip install pygame==2.0.0.dev4 –pre –user

再运行原来的程序,done!!!

ImportError: pycurl: libcurl link-time ssl backend (openssl) is different from compile-time ssl backend (none/other)解决

 python  ImportError: pycurl: libcurl link-time ssl backend (openssl) is different from compile-time ssl backend (none/other)解决已关闭评论
10月 082019
 

mac下使用import pycurl,出现: ImportError: pycurl: libcurl link-time ssl backend (openssl) is different from compile-time ssl backend (none/other)

 

使用下面方式解决:

pip uninstall pycurl
pip install --compile --install-option="--with-openssl" pycurl


xcode 升级后使用模拟器提示“The connection to service named com.apple.commcenter.coretelephony.xpc was invalidated” 解决方案

 swift  xcode 升级后使用模拟器提示“The connection to service named com.apple.commcenter.coretelephony.xpc was invalidated” 解决方案已关闭评论
10月 082019
 

xcode 升级后使用模拟器提示“The connection to service named com.apple.commcenter.coretelephony.xpc was invalidated” 解决方案

 

在终端运行 :

xcrun simctl spawn booted log config --mode "level:off"  --subsystem com.apple.CoreTelephony
DONE!

xcode 可用的磁盘不足(mac磁盘工具的可清除) 问题排查

 mac, macpro  xcode 可用的磁盘不足(mac磁盘工具的可清除) 问题排查已关闭评论
10月 062019
 

升级了mac os到10.14后出现一系列的问题,安装xcode今天提示“可用的磁盘不足”,我的天,我磁盘70多个G,但使用df  -h 查看却发现只有15G可用,使用mac磁盘工具发现有50多G是可清除状态。

磁盘工具-> 可清除 这部分空间是时间机器的本地快照. 在你不连接外部磁盘, 且磁盘空间富裕的时候apple的自动优化机制. 要清除的话, 除了停止时间机器, 还可以打开终端,

tmutil –help

tmutil localsnapshot / # 列出本地快照, 或者 listlocalsnapshotdates /

tmutil deletelocalsnapshots <snapshot_date> # 指定日期删除

但我的机器光用上面的命令没有什么效果,只能强制使用下面的命令先强制关闭time machine

直接 tmutil disable 等系统自动回收.

使用上面命令后再使用df -h 检查可用磁盘,发现空间释放出来了,再安装xcode也没有问题了!!

 

但需要备份的时候记得 tmutil enable .

Python中filter、map、reduce、lambda 介绍

 python  Python中filter、map、reduce、lambda 介绍已关闭评论
9月 242019
 

Python中filter, map, reduce, lambda函数介绍

filter(function, sequence):对sequence中的item依次执行function(item),将执行结果为True的item组成一个List/String/Tuple(取决于sequence的类型)返回:
>>> def f(x): return x % 2 != 0 and x % 3 != 0
>>> filter(f, range(2, 25))
[5, 7, 11, 13, 17, 19, 23]
>>> def f(x): return x != ‘a’
>>> filter(f, “abcdef”)
‘bcdef’

map(function, sequence) :对sequence中的item依次执行function(item),见执行结果组成一个List返回:
>>> def cube(x): return x*x*x
>>> map(cube, range(1, 11))
[1, 8, 27, 64, 125, 216, 343, 512, 729, 1000]
>>> def cube(x) : return x + x

>>> map(cube , “abcde”)
[‘aa’, ‘bb’, ‘cc’, ‘dd’, ‘ee’]
另外map也支持多个sequence,这就要求function也支持相应数量的参数输入:
>>> def add(x, y): return x+y
>>> map(add, range(8), range(8))
[0, 2, 4, 6, 8, 10, 12, 14]

reduce(function, sequence, starting_value):对sequence中的item顺序迭代调用function,如果有starting_value,还可以作为初始值调用,例如可以用来对List求和:
>>> def add(x,y): return x + y
>>> reduce(add, range(1, 11))
55 (注:1+2+3+4+5+6+7+8+9+10)
>>> reduce(add, range(1, 11), 20)
75 (注:1+2+3+4+5+6+7+8+9+10+20)

lambda:这是Python支持一种有趣的语法,它允许你快速定义单行的最小函数,类似与C语言中的宏,这些叫做lambda的函数,是从LISP借用来的,可以用在任何需要函数的地方:
>>> g = lambda x: x * 2
>>> g(3)
6
>>> (lambda x: x * 2)(3)
6

我们也可以把filter map reduce 和lambda结合起来用,函数就可以简单的写成一行。
例如
kmpathes = filter(lambda kmpath: kmpath,
map(lambda kmpath: string.strip(kmpath),

string.split(l, ‘:’)))
看起来麻烦,其实就像用语言来描述问题一样,非常优雅。
对 l 中的所有元素以’:’做分割,得出一个列表。对这个列表的每一个元素做字符串strip,形成一个列表。对这个列表的每一个元素做直接返回操作(这个地方可以加上过滤条件限制),最终获得一个字符串被’:’分割的列表,列表中的每一个字符串都做了strip,并可以对特殊字符串过滤

 Posted by at 上午8:09

云服务器EC2配置Swap分区解决Cannot Allocate Memory

 centos  云服务器EC2配置Swap分区解决Cannot Allocate Memory已关闭评论
9月 192019
 

今天在EC2(Centos 7)上使用nvm 安装node时出现下面错误提示:

# nvm install 8.16.1
Downloading and installing node v8.16.1…
Downloading https://nodejs.org/dist/v8.16.1/node-v8.16.1-linux-x64.tar.xz…
######################################################################## 100.0%
Computing checksum with sha256sum
Checksums matched!
xz: (stdin): Cannot allocate memory
tar: Child returned status 1
tar: Error is not recoverable: exiting now
Binary download failed, trying source.
Downloading https://nodejs.org/dist/v8.16.1/node-v8.16.1.tar.xz…
######################################################################## 100.0%
Computing checksum with sha256sum
Checksums matched!
xz: (stdin): Cannot allocate memory
tar: Child returned status 1
tar: Error is not recoverable: exiting now
nvm: install v8.16.1 failed!

这台EC2内存只有1G,看来需要配个交换分区。

 

步骤

# 创建一个全0填充的2GB文件。InputFile利用Linux系统的/dev/zero。bs是BlockSize。

sudo dd if=/dev/zero of=/mnt/2GB.swap bs=1M count=2048

 

# 把该文件格式化为Swap文件

sudo mkswap /mnt/2GB.swap

 

# 把该Swap文件挂载为Swap分区

sudo swapon /mnt/2GB.swap

 

# 检查是否成功挂载。Swap那一行现在就不是0了。

$ free -m

total        used        free      shared  buff/cache   available

Mem:            963         677          74          78         211          52

Swap:          2047          84        1963

# 配置fstab,使开机时自动挂载Swap文件为Swap分区

sudo vim /etc/fstab

 

# 在/ect/fstab中添加

/mnt/2GB.swap none swap sw 0 0

 

mac下使用第三方工具Xnip完美滚动截图

 mac  mac下使用第三方工具Xnip完美滚动截图已关闭评论
9月 182019
 

Mac可以使用腾讯的Snip进行滚动截图,但这种截图有个缺陷: 它只能截取完整的窗口,有没有可以选取部分的滚动截图?? 有,Xnip, 而且免费,功能更是逆天!!!!!

很久以来 macOS 都被吐槽没有足够好用的截屏工具,以至于当非常强大的 Snipaste 问世时,很多用户的第一反应就是「什么时候有 Mac 版?」。在愿望成真之余,另一款截屏工具 Xnip 也悄然发布——小巧而强大,还有很多非常实用的独有功能哦。

常见的截屏功能 Xnip 都支持,比如窗口识别、标注等;特别是 Xnip 支持「步骤标注」,需要经常制作教程的用户一定喜欢。

Xnip 还优化了截屏的流程。一般来讲截屏的步骤分为「区域选择 – 确认选择 – 标注 / 编辑 – 保存」,而一旦进入了「标注 / 编辑」状态,用户便无法再次改变选择的区域。虽然可能很多用户都觉得无所谓,重新来一遍或是事后再裁剪就好了,但是如果已经标注了一大堆才发现区域不对,也挺烦恼的。而 Xnip 允许用户在标注过程中随意改变已选择的区域,不得不佩服开发者的细心。

Xnip 也支持滚动截屏,使用体验和别家也是非常不一样,滚动的时候旁边有实时预览,感觉非常爽快自然。

特别值得一提的是,Xnip 的滚动截图还能保留动图的动态,虽然我暂时没想到使用场景是什么,可能…用作呈堂证供?再次佩服开发者对各种细节的观察与思考。

Xnip 是国内开发者 ZekeDa 的作品,可在 Mac App Store 免费下载。免费版可使用所有功能,只是在保存时会被加上「水印」——说是水印,其实只会加在截屏以外的区域,并不影响阅读或破坏截屏完整性。

mac下使用第三方工具snip滚动截图

 mac  mac下使用第三方工具snip滚动截图已关闭评论
9月 182019
 

Snip是腾讯出一款截图工具,使用简单便捷。

1.我们点击pkg去安装。

2.打开snip的偏好设置…。在 启动滚动截图 处打勾。

3.在系统偏好设置–>安全性与隐私, 选择隐私标签,找到左边辅助功能界面, 将右面的snip.app处打勾

4. 使用自己在snip定义的快捷键(默认command + control + a)或直接点截屏命令截取(记得需要截的东西具有滚动功能,如果有滚动功能),如滚动截取网页:首先保持Snip在开启状态,然后使用截屏,点下网页窗口即可看到“正在截取滚动区域”框。

done!

MAC下截图及使用chrome截取长网页图

 mac  MAC下截图及使用chrome截取长网页图已关闭评论
9月 182019
 

Mac有自带截图功能。

(1)Shift + Command + 3,会将生成图片自动保存到桌面上。

(2)Shift + Command + 4,会出现十字光标,按需选中要截图的内容后,会将生成图片自动保存到桌面上。

(3)Shift + Command + 4,会出现十字光标,按空格键,出现相机图标,然后点击界面,就会把当前界面生成图片自动保存到桌面上。

以上截图方式就已经很方便,那么,如果要截长图,有什么好的办法呢?

Chorme浏览器有自带截长图功能,方便好用。

打开需要截长图的网页,右键–检查–Shift + Command + P,输入“screen”,选择

“Capture full size screenshot”:

success ~

会生成一张以当前页面url命名的长截图,并会将生成图片自动保存到下载里面,通过Finder可以找到。

当然,我们也可以用同样的方法,局部截图:

通过审查元素,选中我们需要截图的div盒子,选择:

“Capture node screenshot”

就可以实现局部截图了。