Crypto、Cython、pyinstaller、gdal(windows)库安装,使用Xshell拷贝大量文件

1、Crypto可用于加密密码生成许可证,但不能直接pip安装,常见问题

from Crypto.Cipher import AES
ModuleNotFoundError: No module named 'Crypto

安装方法:
把安装的Crypto库卸载掉

pip uninstall Crypto
pip uninstall pycrypto

正确安装命令:

pip install pycryptodome

crypto、pycrypto和pycrytodome是一个东西,crypto在python上面的名字是pycrypto它是一个第三方库,已经停更
如果需要Crypto库的话,直接使用pip install pycryptodome这条命令就可以'
其他看到的方法,若不行可尝试

pip install crypto pycryptodome
pip uninstall crypto pycryptodome
pip install pycryptodome

2、gdal库安装,在windows系统安装很麻烦,直接pip是装不上的,先去网站下载需要的gdal版本:https://www.lfd.uci.edu/~gohlke/pythonlibs/#pygame
在这里插入图片描述
然后使用命令:

pip install GDAL-2.2.4-cp36-cp36m-win_amd64.whl

装上后,即可调用,下面含osgeo的引用就不会报错

import osgeo
from osgeo import ogr, osr,gdal

3、问题:ImportError: Module use of python38.dll conflicts with this version of Python.解决

ImportError: Module use of python36.dll conflicts with this version of Python.

具体怎么产生的我已经记不清了,好像是conda创建虚拟环境时给定了python=3.8版本进行安装,然后在安装库的时候,环境安装的库是python3.6的版本,自动下载了python3.6,结果导致这两个版本冲突。

解决办法:在装虚拟环境路径的文件夹下搜索找到python38.dll,把这个文件删除,或者剪切走,这样环境就会使用下载的python3.6版本,不会再报这个错'

4、Cython库安装,用于编译的cython库,第一眼看到报错,下意识是直接
pip install Cython,实际上这样并不行,正确方法:

pip install cython

5、pyinstaller库安装,进行打包通常要用到pyinstaller库,安装方法:

pip install pyinstaller

6、使用cp时,使用SSH服务器拷贝大量图片到指定位置时,bash: /bin/cp: Argument list too long,提示参数列表过长 解决方案:使用find 命令:

find test/ -name "*.jpg" | xargs -i cp {
    
    } train
"""把test下的所有jpg文件拷贝到train文件夹下"""

或者是

find test/ -name "*.jpg" -exec cp {
    
    } train \;

其他:

find test/ -name "*.jpg" | xargs -i rm {
    
    }
find test/ -name "*.jpg" -exec rm {
    
    } \;

7、在用Xshell管理远程服务器,特别是在用vi编辑配置文件时,总是习惯的用ctrl+s想要保存文件,然后就悲剧了。
xsell就再也没有返应只能关了重新打开。但原来修改的文件算是报废了。 在网上搜索了一下,原来Xshell的ctrl+s的快捷键是锁屏的功能,想要解锁再按下ctrl+q​就可以恢复屏幕滚动。

8、数组操作:

在这里插入图片描述
9、python隔空格读取文件内容:

filename = 'xxxx.txt'
    with open(filename,'r') as f:
        lines = f.readlines()
        for line in lines:      
            x=line.split()[1]
            y=line.split()[2]
            x1=line.split()[3]
            y1=line.split()[4]

猜你喜欢

转载自blog.csdn.net/qq_44442727/article/details/129614687