目录

Python

misaraty 更新 | 2024-02-11
前言
Python是我使用最频繁的编程语言,它给我们的生活科研带来了极大的便利。

文档

Python是科研中的利器,我们可以使用Python3.x及扩展包进行数据处理、绘图,甚至符号运算。数据处理方面,perl和python都可以,前者数据的列处理方便,类似matlab中的矩阵操作;后者功能更多,代码可读性更强,运行速度也更快。绘图方法,因为matplotlib的加入,Python默认出图较为美观,算是Origin的简化版。符号运算方法,scipy、sympy可以进行方程运算和符号推导,但比mathematica弱很多。

安装

Anaconda

便捷的安装方法是使用Anaconda,包含了numpy、matplotlib等,安装只需bash一下即可。

Python3.10

警告
安装全程使用root权限。
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
tar -zxvf openssl-1.1.1g.tar.gz
./config --prefix=/usr/local/openssl
make && make install
mv /usr/bin/openssl /usr/bin/openssl.bak
mv /usr/include/openssl /usr/include/openssl.bak
ln -s -f /usr/local/openssl/bin/openssl /usr/bin/openssl
ln -s -f /usr/local/openssl/include/openssl /usr/include/openssl
ln -s -f /usr/local/openssl/lib/libssl.so.1.1 /usr/lib64/libssl.so
echo "/usr/local/openssl/lib" >> /etc/ld.so.conf
ldconfig -v
openssl version
1
2
3
4
5
6
7
tar -xf Python-3.10.3.tar.xz
./configure --prefix=/home/misaraty/soft/python3.10.3 --with-openssl=/usr/local/openssl
make && make install

cd /home/misaraty/soft/python3.10.3/bin
ln -s python3 python
ln -s pip3 pip
注意

pip北外源:

1
2
pip install -i https://mirrors.bfsu.edu.cn/pypi/web/simple pip -U
pip config set global.index-url https://mirrors.bfsu.edu.cn/pypi/web/simple

Python2

如果想仅安装Python2.7,比如支持旧版本软件,可以运行以下代码,

1
tar -jxvf Python-2.7.tar.bz2 && mkdir python2.7&&cd Python-2.7 && ./configure --prefix=/backup/home/misaraty/soft/python2.7 --enable-shared && make -j 16 && make install

并修改集群用户根目录下的.bashrc

1
export PATH=/home/misaraty/soft/python2.7/bin:$PATH

Notepad++调用

若想直接将Notepad++与Anaconda链接运行代码,需要在Notepad++中运行-运行,输入以下代码,

1
cmd /k python "$(FULL_CURRENT_PATH)" & ECHO. & PAUSE & EXIT

打包exe

若是想将py文件打包成exe文件,方便其他未安装Python环境的组员使用,可以运行,

1
2
3
4
pip install pyinstaller
cd C:\Users\m\Desktop
pyinstaller -F a.py -i a.ico
pyinstaller -F a.py -i a.ico --noconsole

代码格式化

一般来说,自己写的Python代码并没有严格格式化,可以使用autopep8来自动格式化。安装autopep8

1
conda install -c conda-forge autopep8

在Notepad++中运行以下代码来实现自动格式化,

1
cmd /k autopep8 --in-place --aggressive --aggressive "$(FULL_CURRENT_PATH)" & ECHO. & PAUSE & EXIT

下载视频

安装you-get,

1
conda install -c conda-forge you-get

Seaborn绘图

安装Seaborn,

1
conda install -c anaconda seaborn
注意
Seaborn和Matplotlib都是不错的Python绘图库。

计算模拟

安装计算材料学软件,

1
2
conda install -c conda-forge ase
conda install -c conda-forge pymatgen

报错

若在conda安装某些软件过程中出现如下报错,

1
2
3
4
ERROR conda.core.link:_execute_actions(337): An error occurred while installing package 'defaults::tqdm-4.46.1-py_0'.
CondaError: Cannot link a source that does not exist. C:\ProgramData\Anaconda3\Scripts\conda.exe
Running `conda clean --packages` may resolve your problem.
Attempting to roll back.

则运行,

1
conda install tqdm -f

换北外源

北京外国语大学conda镜像源,运行,

1
conda config --set show_channel_urls yes

生成C:\Users\m\.condarc,修改,

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
channels:
  - defaults
show_channel_urls: true
default_channels:
  - https://mirrors.bfsu.edu.cn/anaconda/pkgs/main
  - https://mirrors.bfsu.edu.cn/anaconda/pkgs/r
  - https://mirrors.bfsu.edu.cn/anaconda/pkgs/msys2
custom_channels:
  conda-forge: https://mirrors.bfsu.edu.cn/anaconda/cloud
  msys2: https://mirrors.bfsu.edu.cn/anaconda/cloud
  bioconda: https://mirrors.bfsu.edu.cn/anaconda/cloud
  menpo: https://mirrors.bfsu.edu.cn/anaconda/cloud
  pytorch: https://mirrors.bfsu.edu.cn/anaconda/cloud
  pytorch-lts: https://mirrors.bfsu.edu.cn/anaconda/cloud
  simpleitk: https://mirrors.bfsu.edu.cn/anaconda/cloud

清理索引缓存,

1
conda clean -i

查看状态,

1
conda info

北京外国语大学pip镜像源,运行,

1
2
python -m pip install --upgrade pip
pip config set global.index-url https://mirrors.bfsu.edu.cn/pypi/web/simple

代理

  • conda

打开C:\Users\m\.condarc,增加,

1
2
3
4
proxy_servers:
    http: socks5://127.0.0.1:7890
    https: socks5://127.0.0.1:7890
ssl_verify: False
  • pip

打开C:\Users\m\AppData\Roaming\pip\pip.ini,增加,

1
proxy = socks5://127.0.0.1:7890

或,

1
2
3
4
5
6
7
8
import requests

proxies = {
    'http':'socks5://127.0.0.1:7890',
    'https':'socks5://127.0.0.1:7890'
}
url = 'https://xxx.com/'
res = requests.get(url, proxies=proxies)