python安装

 

https://www.anaconda.com/

https://www.anaconda.com/download


anaconda常用命令

 

创建一个新的虚拟环境
conda create --name jupyter_venv python=3.12

激活虚拟环境
conda activate jupyter_venv

退出当前虚拟环境
conda deactivate

删除某个虚拟环境
conda remove -n your_env_name --all 
其中,-n与--name等价,表示虚拟环境名
         

conda env list

conda list
    

 

conda install 依赖包名称 

    

 

    

python

 
下载
https://www.python.org/

https://www.python.org/downloads/windows/
    

环境变量

 
- windows 
```
D:\app\py312\Scripts\
D:\app\py312\
```

sqlite3

 
- python3.10自身以及之前的版本,需要在setup.py中添加sqlite3的include 路径
- python3.11以及之后的版本,可以设置环境变量,在Python编辑时会读取环境变量指定的位置 

```
export LD_LIBRARY_PATH=/wks/python/ubuntu_sqlite3/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=/wks/python/ubuntu_ssl3/lib64:$LD_LIBRARY_PATH
export PYTHON_SSL_DEFAULT=/wks/python/ubuntu_ssl3  # 其中PYTHON_SSL_DEFAULT不加有时也可以

#下面两行命令相对底层,直接在编译配置层面加入指定的源码文件目录及库文件目录
export CFLAGS="-I/wks/python/ubuntu_sqlite3/include $CFLAGS"
export LDFLAGS="-L/wks/python/ubuntu_sqlite3/lib $LDFLAGS"
```

 

    

 

    

系统依赖包

 
apt list |grep libffi-dev
apt list |grep liblzma-dev
apt list |grep libsqlite3-dev

sudo apt-get update

sudo apt-get install libffi-dev
sudo apt-get install liblzma-dev
sudo apt-get install libsqlite3-dev
sudo apt-get install libssl-dev
sudo apt-get install libreadline-dev
sudo apt-get install libbz2-dev

sqlite3

 

https://www.sqlite.org

mkdir /opt/python/ubuntu_sqlite3/
unzip sqlite-src-3480000.zip 
cd sqlite-src-3480000/
ls
./configure --prefix=/opt/python/ubuntu_sqlite3/
make
make install

xt@ai:/opt/python$ cd ubuntu_sqlite3/
xt@ai:/opt/python/ubuntu_sqlite3$ cd bin/
xt@ai:/opt/python/ubuntu_sqlite3/bin$ ./sqlite3 
SQLite version 3.48.0 2025-01-14 11:05:00
Enter ".help" for usage hints.
Connected to a transient in-memory database.
Use ".open FILENAME" to reopen on a persistent database.
  
    

openssl

 

wget https://www.openssl.org/source/openssl-3.3.2.tar.gz --no-check-certificate

mkdir /opt/python/ubuntu_ssl3
tar -xvf openssl-3.3.2.tar.gz
cd openssl-3.3.2/

./config shared --prefix=/opt/python/ubuntu_ssl3
sudo make 
sudo make install
  

 
export LD_LIBRARY_PATH=/opt/python/ubuntu_sqlite3/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=/opt/python/ubuntu_ssl3/lib64:$LD_LIBRARY_PATH
export PYTHON_SSL_DEFAULT=/opt/python/ubuntu_ssl3  # 其中PYTHON_SSL_DEFAULT不加有时也可以

#下面两行命令相对底层,直接在编译配置层面加入指定的源码文件目录及库文件目录
export CFLAGS="-I/opt/python/ubuntu_sqlite3/include $CFLAGS"
export LDFLAGS="-L/opt/python/ubuntu_sqlite3/lib $LDFLAGS"

tar -xvf Python-3.12.9.tar.xz
mkdir /opt/python/ubuntu_py3129_gpu
cd Python-3.12.9
./configure --prefix=/opt/python/ubuntu_py3129_gpu --enable-optimizations



下面这种情况是不行的,如果出现这种情况,重新源码编译sqlite3
checking for sqlite3 >= 3.7.15... yes
checking for sqlite3.h... yes
checking for sqlite3_bind_double in -lsqlite3... no
checking for sqlite3_column_decltype in -lsqlite3... no
checking for sqlite3_column_double in -lsqlite3... no
checking for sqlite3_complete in -lsqlite3... no
checking for sqlite3_progress_handler in -lsqlite3... no
checking for sqlite3_result_double in -lsqlite3... no
checking for sqlite3_set_authorizer in -lsqlite3... no
checking for sqlite3_trace_v2 in -lsqlite3... no
checking for sqlite3_trace in -lsqlite3... no
checking for sqlite3_value_double in -lsqlite3... no
checking for sqlite3_load_extension in -lsqlite3... no
checking for sqlite3_serialize in -lsqlite3... no


checking for stdlib extension module _sqlite3... missing

下面的情况是可以的,重在最后的checking _sqlite3 为yes
checking for sqlite3 >= 3.7.15... no
checking for sqlite3.h... no

checking for sqlite3 >= 3.7.15... no
checking for sqlite3.h... yes
checking for sqlite3_bind_double in -lsqlite3... yes

几个yes 
checking for stdlib extension module _sqlite3... yes
checking for stdlib extension module zlib... yes
checking for stdlib extension module _bz2... yes
checking for stdlib extension module _lzma... yes
checking for stdlib extension module _ssl... yes
checking for stdlib extension module _hashlib... yes
checking for stdlib extension module _ctypes_test... yes


make   / make clean 

注意下面不会出现_ssl,前面也不会提示_sqlite3禁用或找不到 
The necessary bits to build these optional modules were not found:
_curses               _curses_panel         _dbm               
_gdbm                 _lzma                 _tkinter           
nis                   readline   


make install

chown -R xt:xt /opt/python/

环境变量

 
#export PYTHONPATH=自己的工作目录 
export PATH=/opt/python/ubuntu_py3129/bin:$PATH

cd /opt/python/ubuntu_py3129_gpu/bin 
ln -s python3 python
ln -s pip3 pip

which python
/opt/python/ubuntu_py3129/bin/python

which pip
/opt/python/ubuntu_py3129/bin/pip
    

 

 
sudo apt-get update
sudo apt-get install --reinstall openssl
    
xt@xuetu:~$ openssl version
OpenSSL 3.0.2 15 Mar 2022 (Library: OpenSSL 3.0.2 15 Mar 2022)

xt@xuetu:~$ ssh -V
OpenSSH_8.9p1 Ubuntu-3ubuntu0.11, OpenSSL 3.0.2 15 Mar 2022

 
尽量安装3.0.2版本,这个与ubuntu(22.04.05)自带的版本一致
    
如果安装的3.3版本导致ssh无法使用,则注释环境变量的Lib库路径即可

 

    

 
目前ubuntu最高版本的libffi为8,低一点的ubuntu为7,
这涉及将一个ubuntu上编译好的python直接COPY到另外一个ubuntu上是否依然能用
$ find /usr/ -name libffi*
/usr/share/doc/libffi8
/usr/lib/x86_64-linux-gnu/libffi.so.8
/usr/lib/x86_64-linux-gnu/libffi.so.8.1.4

 
mkdir /wks/python/ubuntu_sqlite3/
unzip sqlite-src-3480000.zip 
cd sqlite-src-3480000/
ls
./configure --prefix=/wks/python/ubuntu_sqlite3/
make
make install

openssl

 
尽量选择与系统默认版本贴近的openssl版本,避免影响系统运行 
$ openssl version
OpenSSL 3.0.13 30 Jan 2024 (Library: OpenSSL 3.0.13 30 Jan 2024)

wget https://github.com/openssl/openssl/releases/download/openssl-3.0.16/openssl-3.0.16.tar.gz

tar -xvf openssl-3.0.16.tar.gz
cd openssl-3.0.16/

mkdir /wks/python/ubuntu_ssl3
./config shared --prefix=/wks/python/ubuntu_ssl3
make 
make install

 
#添加到环境变量
export LD_LIBRARY_PATH=/wks/python/ubuntu_sqlite3/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=/wks/python/ubuntu_ssl3/lib64:$LD_LIBRARY_PATH
export PYTHON_SSL_DEFAULT=/wks/python/ubuntu_ssl3  # 其中PYTHON_SSL_DEFAULT不加有时也可以

#下面两行在命令行执行即可,即编译时用一下,其他情况不用 
#下面两行命令相对底层,直接在编译配置层面加入指定的源码文件目录及库文件目录
export CFLAGS="-I/wks/python/ubuntu_sqlite3/include $CFLAGS"
export LDFLAGS="-L/wks/python/ubuntu_sqlite3/lib $LDFLAGS"
  

 
tar -xvf Python-3.11.11.tar.xz
cd Python-3.11.11/
  
mkdir /wks/python/ubuntu_py311_gpu
./configure --prefix=/wks/python/ubuntu_py311_gpu --enable-optimizations

几个重要配置检查

 
checking for stdlib extension module _sqlite3... yes
checking for stdlib extension module _tkinter... missing
checking for stdlib extension module _uuid... yes
checking for stdlib extension module zlib... yes
checking for stdlib extension module _bz2... yes
checking for stdlib extension module _lzma... missing
checking for stdlib extension module _ssl... yes
  

主要是sqlite3,ssl,zlib,bz安装就可以,下面的两个可安也可不安,其他的就不用安装了,用不上
sudo apt-get install liblzma-dev
sudo apt-get install tk-dev

如果ssl这项仍然没有yes,则可以参考sqlite的方式,直接将其添加到编译时环境变量中,如此必能找到
export CFLAGS="-I/wks/python/ubuntu_ssl3/include $CFLAGS"
export LDFLAGS="-L/wks/python/ubuntu_ssl3/lib64 $LDFLAGS"


 
  
make   / make clean 

make install

  

 
#export PYTHONPATH=自己的工作目录 
export PATH=/wks/python/ubuntu_py311_gpu/bin:$PATH

cd /wks/python/ubuntu_py311_gpu/bin 
ln -s python3 python
ln -s pip3 pip

which python
/wks/python/ubuntu_py311_gpu/bin/python

which pip
/wks/python/ubuntu_py311_gpu/bin/pip

 

  

 

  

 

- 系统依赖
```
sudo apt install -y liblzma-dev
```

```
xt@qisan:/wks/python/soft$ tar -xvf Python-3.10.9.tgz
cd Python-3.10.9/

vim setup.py 
sqlite_inc_paths = [ '/usr/include',
                                '/usr/include/sqlite',
                                '/usr/include/sqlite3',
                                '/usr/local/include',
                                '/usr/local/include/sqlite',
                                '/usr/local/include/sqlite3',
                                '/data/jupyter/sqlite3/include',
                                '/wks/python/ubuntu_sqlite3/include'
                                ]

./configure --prefix=/wks/python/py310 --with-openssl=/wks/python/ubuntu_ssl3 --enable-optimizations   --enable-loadable-sqlite-extensions >/tmp/a.log
make 
make install 
```

ln -s python3 python
ln -s pip3 pip

$ which python
/wks/python/py310/bin/python
$ which pip
/wks/python/py310/bin/pip

 

```
rm -rf /wks/python/py310
mkdir /wks/python/py310

cd /wks/python/soft/Python-3.10.9/
./configure --prefix=/wks/python/py310 --with-openssl=/wks/python/ubuntu_ssl3 --enable-optimizations   --enable-loadable-sqlite-extensions >/tmp/a.log
make 
make install 

cd /wks/python/py310/bin/
ln -s python3 python
ln -s pip3 pip

```


 

  

 


 

  

 


pip install 依赖包

-i https://pypi.tuna.tsinghua.edu.cn/simple

 
pip install --upgrade pip -i https://pypi.tuna.tsinghua.edu.cn/simple  #pip要求系统具有SSL

pip install lightgbm xgboost statsmodels -i https://pypi.tuna.tsinghua.edu.cn/simple

pip install pandas sklearn-pandas scikit-learn hmmlearn  sklearn_crfsuite chinese_calendar matplotlib  pydotplus  openpyxl  pdfminer.six -i https://pypi.tuna.tsinghua.edu.cn/simple

pip install jupyter jupyter_contrib_nbextensions -i https://pypi.tuna.tsinghua.edu.cn/simple

pip install featuretools feature-engine tsfresh mlxtend shap seaborn pyod copulas cx_Oracle pymysql==1.0.2 sqlalchemy -i https://pypi.tuna.tsinghua.edu.cn/simple

pip install catboost -i https://pypi.tuna.tsinghua.edu.cn/simple
    

windows 安装遇到异常时,可尝试以下操作

 

下载windows SDK相关组件
https://visualstudio.microsoft.com/zh-hans/visual-cpp-build-tools/

安装C++相关,安装windows SDK 
vs_BuildTools


D:\app\py313\python.exe -m pip install --upgrade pip -i https://pypi.tuna.tsinghua.edu.cn/simple
    

conda install catboost

 

export RUSTUP_DIST_SERVER=https://mirrors.ustc.edu.cn/rust-static
export RUSTUP_UPDATE_ROOT=https://mirrors.ustc.edu.cn/rust-static/rustup


wget https://sh.rustup.rs -O rustup-init.sh && chmod +x rustup-init.sh && ./rustup-init.sh

    
安装最新版 ``` pip install torch torchvision torchaudio onnx onnxruntime -i https://pypi.tuna.tsinghua.edu.cn/simple pip install onnx onnxruntime skl2onnx -i https://pypi.tuna.tsinghua.edu.cn/simple ``` - 2.10 ``` pip install torch-scatter -f https://data.pyg.org/whl/torch-2.10.0+cpu.html pip install torch-sparse -f https://data.pyg.org/whl/torch-2.10.0+cpu.html pip install torch-geometric pip install torch-cluster -f https://data.pyg.org/whl/torch-2.10.0+cpu.html pip install torch-spline-conv -f https://data.pyg.org/whl/torch-2.10.0+cpu.html ``` - torch2.5 无大模型 ``` >>> import torch >>> torch.__version__ '2.5.1+cu124' pip install torch==2.5.1 torchvision==0.20.1 torchaudio==2.5.1 -i https://pypi.tuna.tsinghua.edu.cn/simple pip install torch-scatter -f https://data.pyg.org/whl/torch-2.5.1+cu124.html pip install torch-sparse -f https://data.pyg.org/whl/torch-2.5.1+cu124.html pip install torch-geometric pip install torch-cluster -f https://data.pyg.org/whl/torch-2.5.1+cu124.html pip install torch-spline-conv -f https://data.pyg.org/whl/torch-2.5.1+cu124.html ``` - torch2.4+大模型版 ``` pip install torch==2.4.0 torchaudio==2.4.0 torchvision==0.19.0 transformers==4.44.0 -i https://pypi.tuna.tsinghua.edu.cn/simple pip install tokenizers==0.19.1 triton==3.0.0 vllm==0.5.5 vllm-flash-attn==2.6.1 -i https://pypi.tuna.tsinghua.edu.cn/simple pip install torch-scatter -f https://data.pyg.org/whl/torch-2.4.0+cu124.html pip install torch-sparse -f https://data.pyg.org/whl/torch-2.4.0+cu124.html pip install torch-geometric pip install torch-cluster -f https://data.pyg.org/whl/torch-2.4.0+cu124.html pip install torch-spline-conv -f https://data.pyg.org/whl/torch-2.4.0+cu124.html pip install pyg-lib -f https://data.pyg.org/whl/torch-2.4.0+cu124.html ``` - 常用 ``` 升级gcc sudo add-apt-repository ppa:ubuntu-toolchain-r/test sudo apt-get update sudo apt-get install gcc-6 g++-6 sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-6 60 --slave /usr/bin/g++ g++ /usr/bin/g++-6 ``` ## 卸载 ``` pip uninstall torch-scatter torch-sparse torch-geometric torch-cluster torch-spline-conv pip uninstall torch torchvision torchaudio ``` ## 其他 ``` 目前torch-scatter在torch2.6.0版本上,不支持,因此回到2.5.1版,这就需要卸载现在的torch2.6.0 i-aml@ml python]$ pip list|grep torch torch 2.5.1 torch_cluster 1.6.3+pt25cu124 torch-geometric 2.6.1 torch_scatter 2.1.2+pt25cpu torch_sparse 0.6.18+pt25cu124 torch_spline_conv 1.2.2+pt25cu124 torchaudio 2.5.1 torchvision 0.20.1 pip install torch==2.5.1 torchvision==0.20.1 torchaudio==2.5.1 -i https://pypi.tuna.tsinghua.edu.cn/simple pip install torch-scatter -f https://data.pyg.org/whl/torch-2.5.1+cu124.html pip install torch-sparse -f https://data.pyg.org/whl/torch-2.5.1+cu124.html pip install torch-geometric pip install torch-cluster -f https://data.pyg.org/whl/torch-2.5.1+cu124.html pip install torch-spline-conv -f https://data.pyg.org/whl/torch-2.5.1+cu124.html https://pytorch.org/get-started/locally/ conda install pytorch torchvision torchaudio cpuonly -c pytorch 或 pip install torch torchvision torchaudio >>> import torch >>> torch.__version__ '1.13.1+cpu' pip install torch-scatter -f https://data.pyg.org/whl/torch-2.0.0+cpu.html pip install torch-sparse -f https://data.pyg.org/whl/torch-1.13.1+cpu.html pip install torch-geometric pip install torch-cluster -f https://data.pyg.org/whl/torch-1.13.1+cpu.html pip install torch-spline-conv -f https://data.pyg.org/whl/torch-1.13.1+cpu.html >>> import torch >>> torch.__version__ '1.13.1+cu117' 2.2.2+cu121 pip install torch-scatter -f https://data.pyg.org/whl/torch-1.13.1+cu117.html pip install torch-sparse -f https://data.pyg.org/whl/torch-1.13.1+cu117.html pip install torch-geometric pip install torch-cluster -f https://data.pyg.org/whl/torch-1.13.1+cu117.html pip install torch-spline-conv -f https://data.pyg.org/whl/torch-1.13.1+cu117.html >>> import torch >>> torch.__version__ '2.0.0' pip install torch-scatter -f https://data.pyg.org/whl/torch-2.0.0+cpu.html pip install torch-sparse -f https://data.pyg.org/whl/torch-2.0.0+cpu.html pip install torch-geometric pip install torch-cluster -f https://data.pyg.org/whl/torch-2.0.0+cpu.html pip install torch-spline-conv -f https://data.pyg.org/whl/torch-2.0.0+cpu.html 2.2.2+cu121 pip install torch-scatter -f https://data.pyg.org/whl/torch-2.2.2+cu121.html pip install torch-sparse -f https://data.pyg.org/whl/torch-2.2.2+cu121.html pip install torch-geometric pip install torch-cluster -f https://data.pyg.org/whl/torch-2.2.2+cu121.html pip install torch-spline-conv -f https://data.pyg.org/whl/torch-2.2.2+cu121.html >>> import torch >>> torch.__version__ '2.5.1+cu124' pip install torch-scatter -f https://data.pyg.org/whl/torch-2.5.1+cu124.html pip install torch-sparse -f https://data.pyg.org/whl/torch-2.5.1+cu124.html pip install torch-geometric pip install torch-cluster -f https://data.pyg.org/whl/torch-2.5.1+cu124.html pip install torch-spline-conv -f https://data.pyg.org/whl/torch-2.5.1+cu124.html >>> import torch >>> torch.__version__ '2.6.0+cu124' 针对2.6.0版本,下面的安装不成功,但采用2.5.1版本的torch,就可以成功 pip install torch-scatter -f https://data.pyg.org/whl/torch-2.6.0+cu124.html pip install torch-sparse -f https://data.pyg.org/whl/torch-2.6.0+cu124.html pip install torch-geometric pip install torch-cluster -f https://data.pyg.org/whl/torch-2.6.0+cu124.html pip install torch-spline-conv -f https://data.pyg.org/whl/torch-2.6.0+cu124.html ```

 
  
    

 

    

 
清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/

中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/

豆瓣(douban) http://pypi.douban.com/simple/

阿里云 http://mirrors.aliyun.com/pypi/simple/

华为云镜像源 https://developer.huaweicloud.com/mirror/#/pypi_simple


 


    

 
pip install jieba -i https://pypi.tuna.tsinghua.edu.cn/simple

pip install nltk -i https://pypi.tuna.tsinghua.edu.cn/simple

pip install jpype1 -i https://pypi.tuna.tsinghua.edu.cn/simple

pip install gensim -i https://pypi.tuna.tsinghua.edu.cn/simple

pip install rank_bm25 -i https://pypi.tuna.tsinghua.edu.cn/simple

 


 


 
pip install dtreeviz 
conda install python-graphviz

graphviz的系统依赖

 
在 Python 中使用 pip 安装 Graphviz 库时,需执行以下命令:
pip install graphviz


需要注意的是,
pip install graphviz仅安装用于生成 DOT 文件及调用 Graphviz 工具的 Python 接口模块,
而实际渲染图形的功能依赖系统级 Graphviz 软件。
因此,需额外完成以下步骤:

ubuntu系统 
sudo apt install graphviz

https://graphviz.org/download/

windows系统使用conda安装可自动下载相关的依赖包
conda install python-graphviz

D3

 
pip install d3blocks


D3生成的html,使用下面的方法可以转图片
pip install pyppeteer


 

    

 

    

 

    

 
python -m venv .venv

source .venv/bin/activate

deactivate

python -m venv /path/to/venv
rm -rf .venv

 
虚拟环境的独立性:
虚拟环境中安装的包不会影响系统 Python 环境,也不会被系统 Python 环境的包影响。
  
虚拟环境的存储位置:
虚拟环境通常存储在项目目录下,但也可以指定其他位置。例如:
python -m venv /path/to/venv
  

 

  

 
https://pytorch-geometric.readthedocs.io/en/latest/notes/installation.html

pip install torch-scatter -f https://data.pyg.org/whl/torch-2.4.0+cu124.html
pip install torch-sparse -f https://data.pyg.org/whl/torch-2.4.0+cu124.html
pip install torch-geometric
pip install torch-cluster -f https://data.pyg.org/whl/torch-2.4.0+cu124.html
pip install torch-spline-conv -f https://data.pyg.org/whl/torch-2.4.0+cu124.html
pip install pyg-lib -f https://data.pyg.org/whl/torch-2.4.0+cu124.html

torch2.5 无大模型
pip install torch==2.5.1 torchvision==0.20.1 torchaudio==2.5.1 -i https://pypi.tuna.tsinghua.edu.cn/simple
    
pip install torch-scatter -f https://data.pyg.org/whl/torch-2.5.1+cu124.html
pip install torch-sparse -f https://data.pyg.org/whl/torch-2.5.1+cu124.html
pip install torch-geometric
pip install torch-cluster -f https://data.pyg.org/whl/torch-2.5.1+cu124.html
pip install torch-spline-conv -f https://data.pyg.org/whl/torch-2.5.1+cu124.html
    

 

    
pip download 依赖包
## MindSpore 离线下载 ### 平台说明 - **OS**: Ubuntu 24.04 (Noble) - **架构**: x86_64 (AMD64) - **glibc**: 2.39 - **兼容平台**: `manylinux2014_x86_64` (向后兼容 glibc 2.17+) ### x86_64 平台离线下载 ```bash pip download --only-binary=:all: \ --platform manylinux2014_x86_64 \ --python-version 3.12 \ --implementation cp --abi cp312 \ -d ./wheelhouse_mindspore \ --index-url https://repo.mindspore.cn/pypi/simple \ --trusted-host repo.mindspore.cn \ --extra-index-url https://repo.huaweicloud.com/repository/pypi/simple \ "mindspore==2.9.0" ``` ### aarch64 (ARM64) 平台离线下载 ```bash pip download --only-binary=:all: \ --platform manylinux2014_aarch64 \ --python-version 3.12 \ --implementation cp --abi cp312 \ -d ./wheelhouse \ --index-url https://repo.mindspore.cn/pypi/simple \ --trusted-host repo.mindspore.cn \ --extra-index-url https://repo.huaweicloud.com/repository/pypi/simple \ "mindspore==2.9.0" ``` ### 参数说明 | 参数 | 说明 | |------|------| | `--only-binary=:all:` | 仅下载二进制 wheel 包,不下载源码包 | | `--platform` | 目标平台,Ubuntu 24.04 x86_64 使用 `manylinux2014_x86_64` | | `--python-version` | Python 版本,根据实际环境调整(如 3.10/3.11/3.12) | | `--implementation cp --abi cp312` | CPython 实现,CPython 3.12 ABI | | `-d` | 下载目录 | | `--index-url` | 主包索引地址(MindSpore 官方源) | | `--extra-index-url` | 额外包索引地址(华为云依赖) | ### 离线安装 下载完成后,在目标机器上执行: ```bash pip install --no-index --find-links=./wheelhouse mindspore==2.9.0 ``` ### 注意事项 1. **平台选择**:Ubuntu 24.04 的 glibc 2.39 向后兼容 manylinux2014 标准 2. **依赖下载**:MindSpore 依赖较多(如 numpy, protobuf 等),建议完整下载 wheelhouse 目录 3. **版本匹配**:确保 MindSpore 版本与 CUDA/cuDNN 版本匹配(如 GPU 版本)
## PyTorch 系列离线下载 ### x86_64 平台 (Ubuntu 24.04) ```bash # PyTorch 系列(严格二进制) pip download --only-binary=:all: \ --platform manylinux2014_x86_64 \ --python-version 3.12 \ --implementation cp --abi cp312 \ -d ./wheelhouse_pytorch \ -i https://pypi.tuna.tsinghua.edu.cn/simple \ torch torchvision torchaudio onnx skl2onnx # onnxruntime 单独下载 pip download \ -d ./wheelhouse_pytorch \ -i https://pypi.tuna.tsinghua.edu.cn/simple \ onnxruntime ``` ### aarch64 (ARM64) 平台 ```bash pip download --only-binary=:all: \ --platform manylinux2014_aarch64 \ --python-version 3.12 \ --implementation cp --abi cp312 \ -d ./wheelhouse_pytorch \ -i https://pypi.tuna.tsinghua.edu.cn/simple \ torch torchvision torchaudio onnx onnxruntime skl2onxl2onnx ``` ### 离线安装 ```bash pip install --no-index --find-links=./wheelhouse_pytorch torch torchvision torchaudio onnx onnxruntime skl2onnx ``` ### 包说明 | 包 | 说明 | |---|---| | `torch` | PyTorch 核心库 | | `torchvision` | PyTorch 计算机视觉库(含预训练模型) | | `torchaudio` | PyTorch 音频处理库 | | `onnx` | ONNX 格式支持 | | `onnxruntime` | ONNX 模型推理引擎 | | `skl2onnx` | Scikit-learn 转 ONNX 工具 | ### 注意事项 1. **GPU 版本**:如需 CUDA 支持,应指定 `torch` 版本(如 `torch==2.1.0`)和对应的 CUDA 版本 2. **依赖大小**:PyTorch 系列包较大(约 2-3GB),下载时注意磁盘空间 3. **版本一致性**:torch、torchvision、torchaudio 版本需匹配
pip download --only-binary=:all: \ --platform manylinux2014_x86_64 \ --python-version 3.12 \ --implementation cp --abi cp312 \ -d ./wheelhouse_common \ -i https://pypi.tuna.tsinghua.edu.cn/simple \ download pip install --no-index --find-links=./wheelhouse_common download pip download --only-binary=:all: \ --platform manylinux2014_x86_64 \ --python-version 3.12 \ --implementation cp --abi cp312 \ -d ./wheelhouse_common \ -i https://pypi.tuna.tsinghua.edu.cn/simple \ jupyter jupyter_contrib_nbextensions ipykernel pip install --no-index --find-links=./wheelhouse_common jupyter jupyter_contrib_nbextensions ipykernel python -m ipykernel install --user --name=cv1 --display-name "Python (cv1)" pip download --only-binary=:all: \ --platform manylinux2014_x86_64 \ --python-version 3.12 \ --implementation cp --abi cp312 \ -d ./wheelhouse_common \ -i https://pypi.tuna.tsinghua.edu.cn/simple \ matplotlib pip install --no-index --find-links=./wheelhouse_common matplotlib
micromamba
## micromamba 是什么 mamba 是使用 C++ 对 conda 包管理器的重实现: - 使用多线程并行下载仓库数据和包文件 - 采用 libsolv 更快地解决包依赖关联(Red Hat、Fedora、OpenSuse 的 RPM 包管理器使用的库) - 核心部分使用 C++ 获取最大效率 - 与 conda 命令一致,没有学习成本即可迁移 mamba-org 组织的几个产物: | 名称 | 说明 | |------|------| | mamba | 基于 Python 命令行实现,替换 conda,提供高速、更可靠的环境管理 | | micromamba | 纯 C++ 实现,单个可执行文件,完全静态链接、自包含 | | libmamba | C++ 库,为 mamba 和 micromamba 提供低层和高层 API | ## 核心概念:MAMBA_ROOT_PREFIX micromamba 是单个静态链接的可执行文件,**base 环境完全为空**,也没有预配置的 .condarc/.mambarc(但如果存在,仍会读取)。所有环境和缓存默认都在 `MAMBA_ROOT_PREFIX` 下创建: ```text $MAMBA_ROOT_PREFIX/ ├── bin/ # micromamba 可执行文件(建议放这里并加入 PATH) ├── envs/ # 每个虚拟环境一个独立目录 ├── pkgs/ # 下载包的缓存(离线迁移的核心) ├── conda-meta etc ... ``` - 不设置时的默认位置:Windows 为 `%USERPROFILE%\AppData\Roaming\mamba`,Linux 为 `~/micromamba` - base 环境就是 root prefix 本身;新创建的环境 env_name 会在 root prefix 的 envs 下开辟一个新目录 - `micromamba activate` 是 shell hook 注入的 shell 函数,不是可执行文件——所以 `alias pyai="/path/micromamba activate pyai"` 这种全路径别名不可行,`alias pyai="micromamba activate pyai"` 才行 参考: - 官方安装文档:https://mamba.readthedocs.io/en/latest/installation/micromamba-installation.html - 发布页:https://github.com/mamba-org/mamba/releases - 介绍文章:https://www.cnblogs.com/huanping/p/16861271.html
## Linux 安装 ```bash # 1. 下载(单个可执行文件,解压即用) sudo mkdir -p /wks/python/micromamba/bin sudo chown -R xt:xt /wks/ cd /wks/python/micromamba curl -Ls https://micro.mamba.pm/api/micromamba/linux-64/latest | tar -xvj bin/micromamba # 2. 加入 PATH 并初始化(init 会把 hook 写入 ~/.bashrc) export PATH=/wks/python/micromamba/bin:$PATH micromamba shell init -s bash -r /wks/python/micromamba # 3. 重新加载配置(更好的做法:直接重开终端) source ~/.bashrc ``` 临时使用(不写入任何配置文件,仅当前会话有效): ```bash export MAMBA_ROOT_PREFIX=/wks/python/micromamba eval "$(/wks/python/micromamba/bin/micromamba shell hook -s bash)" ``` ## Windows 安装 ```powershell # 1. 下载解压 Invoke-Webrequest -URI https://micro.mamba.pm/api/micromamba/win-64/latest -OutFile micromamba.tar.bz2 tar xf micromamba.tar.bz2 MOVE -Force Library\bin\micromamba.exe micromamba.exe # 2. 规划目录:把 micromamba.exe 放入 D:\app\micromamba\bin # 设置用户环境变量 MAMBA_ROOT_PREFIX=D:\app\micromamba # PATH 中加入 %MAMBA_ROOT_PREFIX%\bin # 3. 初始化(init 会把 hook 写入 PowerShell 的 profile) micromamba shell init -s powershell -r D:\app\micromamba ``` init 写入 profile(`Documents\WindowsPowerShell\profile.ps1`)的内容: ```powershell #region mamba initialize $Env:MAMBA_ROOT_PREFIX = "D:\app\micromamba" $Env:MAMBA_EXE = "D:\app\micromamba\bin\micromamba.exe" (& $Env:MAMBA_EXE 'shell' 'hook' -s 'powershell' -r $Env:MAMBA_ROOT_PREFIX) | Out-String | Invoke-Expression #endregion ``` 验证(注意先重开 PowerShell): ```powershell micromamba env list # base 应指向 D:\app\micromamba micromamba activate py312 where.exe python # 应优先命中 D:\app\micromamba\envs\py312\python.exe ``` ## ⚠️ 关键认知:shell init 只改配置文件,对当前会话不生效 `shell init` 做的事仅仅是**把 hook 写进终端的启动脚本**(bashrc / profile.ps1)。当前已打开的窗口加载的还是旧 hook,必须让它重新生效: | 方式 | 命令 | |------|------| | 重开终端(最推荐) | 关闭窗口,重新打开 | | 重载 profile | bash:`source ~/.bashrc`;powershell:`. $PROFILE` | | 只重刷 hook(当前会话) | 见下 | ```powershell # Windows 当前会话手动重刷 hook $Env:MAMBA_ROOT_PREFIX = "D:\app\micromamba" $Env:MAMBA_EXE = "D:\app\micromamba\bin\micromamba.exe" (& $Env:MAMBA_EXE 'shell' 'hook' -s 'powershell' -r $Env:MAMBA_ROOT_PREFIX) | Out-String | Invoke-Expression ``` ```bash # Linux 当前会话手动重刷 hook export MAMBA_ROOT_PREFIX=/wks/python/micromamba eval "$(/wks/python/micromamba/bin/micromamba shell hook -s bash)" ``` 如果 init 之后在当前窗口直接 `micromamba activate xxx`,hook 仍指向旧的(或默认的)root prefix,就会报 `Cannot activate, prefix does not exist ...`,完整案例见「常见问题」第 1 条。 两个易忽略点: - cmd 与 powershell 的初始化命令不同(`-s cmd.exe` / `-s powershell`) - Windows PowerShell 5.1 与 PowerShell 7 (pwsh) 的 profile 是**两个文件**(`Documents\WindowsPowerShell\profile.ps1` vs `Documents\PowerShell\profile.ps1`),在哪种终端里用,就要在哪种终端里 init ## 切换用户(复用已装好的 micromamba) ```bash # 前提:文件已在其他用户环境安装好 sudo chown -R xt:xt /ai/app export PATH=/ai/app/bin:$PATH export MAMBA_ROOT_PREFIX=/ai/app/micromamba which micromamba # /ai/app/bin/micromamba micromamba shell init -s bash -r /ai/app/micromamba source ~/.bashrc micromamba activate pyai ```
## 国内源 国内源可解决下载慢的问题,推荐清华大学开源软件镜像站(TUNA),同步频率高且稳定。三种配置方法,由临时到永久: ### ⚡️ 方法一:单次命令临时加速 安装命令中加 `-c` 参数直接指定清华源,只对当前这一次安装生效: ```bash micromamba install build wheel -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge ``` ### 💡 方法二:环境变量(当前终端会话) 当前窗口里的所有 micromamba 命令都会走国内源,关掉窗口就失效: ```bash export MAMBA_CHANNELS="https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/,https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r/,https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/" ``` ### ✅ 方法三:永久配置(强烈推荐) 创建 `~/.mambarc` 并写入清华源配置,一劳永逸: ```bash mkdir -p ~/.mamba cat > ~/.mambarc << "EOF" channels: - conda-forge - defaults show_channel_urls: true default_channels: - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2 custom_channels: conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud pytorch-lts: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud EOF ``` 配置完成后直接运行安装命令即可。如果速度还是不理想或遇到连接问题,可尝试把配置里的 `https` 改成 `http`。 ## 补充:defaults 与 conda-forge 的区别 ```bash micromamba install jupyter # 默认 channel(defaults,Anaconda 官方源) micromamba install jupyter -c conda-forge # 明确指定社区维护的 conda-forge ``` - defaults:Anaconda 官方维护,更新较慢,某些包可能不是最新版本或缺少构建 - conda-forge:社区维护,更新更频繁、包版本更全,官方文档推荐用它来安装 Jupyter 等科学计算工具
## 常用命令速查 ```bash # 创建 / 激活 / 退出 micromamba create -n py311 python=3.11 -c conda-forge micromamba activate py311 micromamba deactivate micromamba activate # 不带名字 = 激活 base 环境 micromamba run -n py311 mycommand # 不激活,直接在指定环境执行单条命令 # 查看 / 删除 micromamba env list micromamba remove -n py310 --all ``` 注意:remove 之后 `env list` 偶尔仍能查到残留,可直接进 envs 目录手工删除: ```bash cd /wks/python/micromamba/envs/ rm -rf py310 ``` ## 环境的目录结构 新环境就是 root prefix 下 envs 里的一个独立目录: ```bash (py311) $ which python /wks/python/micromamba/envs/py311/bin/python $ ls /wks/python/micromamba/envs/py311 conda-meta include lib share # Linux DLLs Lib Library Scripts # Windows ``` ## 安装包与指定版本 ```bash micromamba install -n py12 pandas # 向指定环境安装 micromamba install pandas=1.5.3 # 精确版本 ``` 版本粒度: | 粒度 | 命令示例 | 说明 | |------|----------|------| | 主版本 | `pandas=1` | 1.x.x 系列中的最新版本 | | 次要版本 | `pandas=1.5` | 1.5.x 系列中的最新版本 | | 精确版本 | `pandas=1.5.3` | 精确安装 1.5.3 | | 精确构建版本 | `pandas=1.5.3=h0e12345_0` | 含构建哈希,区分同版本不同构建 | 查看可用版本: ```bash micromamba search pandas -c conda-forge # 联网查询所有历史版本 ls -d /wks/python/micromamba/pkgs/pandas-* # 离线时直接看缓存目录名 ``` 注意:强制指定旧版本可能影响依赖解析——例如强制 `pandas=1.5.3` 要求 `numpy>=1.20`,若缓存里只有 `numpy-1.19.x`,安装会因依赖无法满足而失败。 ## jupyter 内核注册到环境 ```bash micromamba activate rag_pdf micromamba install jupyter ipykernel python -m ipykernel install --user --name=rag_pdf --display-name "Python (rag_pdf)" ``` ## 包缓存损坏的处理 安装报错 `Invalid package cache` / `Cannot find a valid extracted directory cache` 时,按顺序尝试: ```bash # 1. 清除缓存 micromamba clean --packages --tarballs # 2. 强制重装 micromamba install requests=2.31.0 -c conda-forge --force-reinstall # 3. 手工删除 pkgs 下损坏的目录后重试 # 4. 改用 pip 安装 pip install requests ``` 真实案例:折腾半天清缓存、强制重装都无效,最后发现是**包名写错了**(`request` 应为 `requests`)——排查前请先确认包名!
## environment.yml 安装(在线) ```bash # 按文件创建环境 micromamba env create -f environment.yml # 已有环境,按文件更新 micromamba env update -f environment.yml # 更新并移除文件中未列出的包(保持环境与文件精确一致,避免积累“孤儿”包) micromamba env update -f environment.yml --prune ``` environment.yml 示例(可通过 pip 子段落引用 requirements.txt,同时安装 conda 和 pip 包): ```yaml name: myenv channels: - conda-forge dependencies: - python=3.10 - numpy - pandas - pip - pip: - -r requirements.txt ``` ## 环境导出 | 场景 | 命令 | 说明 | |------|------|------| | 导出当前环境 | `micromamba env export > environment.yml` | 最基础的导出 | | 指定环境 | `micromamba env export -n py12 > environment.yml` | | | explicit 格式 | `micromamba env export -n py12 --explicit > py12-explicit.txt` | URL 列表,离线重建用 | ## 离线迁移(有网机器下载 → 无网机器安装) 思路:找一台与线上机器同版本且环境一致的机器联网安装,完成后迁移到线上。安装过程会缓存下载的软件,安装的环境越多,对外部依赖就越少。micromamba 是需要时下载——gcc、cmake 等 OS 上没有就下载,有就优先使用已有。 有网机器——下载并打包: ```bash # 1. 只下载不安装(包全部进 pkgs 缓存) micromamba update -n py12 -f environment.yml --download-only # 2. 导出 explicit 列表(也可先进环境再导出:micromamba list --explicit > py12-explicit.txt) micromamba env export -n py12 --explicit > py12-explicit.txt # 3. 打包(重点是 pkgs 和 bin;envs 可选——只有目录路径完全一致时才能直接用, # 因为从 pkgs 到 envs 链接的是固定目录。中间若新增过包,要重新导出、重新下载、重新打包) tar -zcvf mipy.tar.gz bin pkgs ``` 无网机器——解压并离线安装: ```bash # 1. 解压并初始化 tar -xvf mipy.tar.gz export MAMBA_ROOT_PREFIX=$PWD ./bin/micromamba shell init --shell bash --root-prefix=$MAMBA_ROOT_PREFIX source ~/.bashrc # 2. 从 explicit 文件离线创建环境 micromamba create -n py12 --file py12-explicit.txt --offline --yes # 3. 离线补装单个包 micromamba install -n py12 pandas=1.5.3 --offline --yes ``` - `--offline`:只使用本地缓存,不联网 - `--yes`:自动确认,避免交互式提示 ## 整体打包迁移(envs 一起带走) ```bash # 有网机器:整个 root prefix 打包(约 1.8G 量级) tar -zcvf mipy.tar.gz micromamba/ ``` 无网机器解压后两种用法: ```bash # A. 不初始化,直接把环境的 bin 加入 PATH 使用(相当于没用 micromamba 的管理能力) tar -xvf mipy.tar.gz export PATH=/home/tan/micromamba/envs/py12/bin:$PATH # B. 重新 init 到新路径(init 之后 micromamba activate 才可用) export MAMBA_ROOT_PREFIX=/home/tan/micromamba ./micromamba/bin/micromamba shell init --shell bash --root-prefix=$MAMBA_ROOT_PREFIX source ~/.bashrc micromamba activate py12 ``` 不 init 直接拷贝是无法使用 `micromamba activate` 的(activate 是 shell hook 注入的函数)。 ## 防止 pkgs 分散到多个目录 有时 `micromamba clean --all -y` 后会发现 micromamba 在 home 目录下另建了 pkgs。固定 pkgs/envs 位置: ```bash cat > ~/.mambarc << EOF pkgs_dirs: - /opt/micromamba/pkgs envs_dirs: - /opt/micromamba/envs EOF export CONDA_PKGS_DIRS=/opt/micromamba/pkgs export MAMBA_ROOT_PREFIX=/opt/micromamba ``` 迁移后 `env list` 出现旧路径残留时,用 `micromamba info` 检查 `package cache`、`envs directories` 的指向,并清理 `~/.condarc` 里多余的 `pkgs_dirs` 配置。
## 机器学习环境 ```bash micromamba create -n pyml python=3.11 micromamba activate pyml micromamba install pandas scikit-learn lightgbm xgboost statsmodels micromamba install matplotlib seaborn openpyxl pymysql==1.0.2 sqlalchemy micromamba install jupyter jupyter_contrib_nbextensions # pip 补充安装(micromamba 与 pip 可混用,pip 走清华 pypi 源) pip install feature-engine -i https://pypi.tuna.tsinghua.edu.cn/simple ``` ## 深度学习环境(torch + PyG,Linux) ```bash micromamba create -n pyai python=3.11 micromamba activate pyai # 指定版本 micromamba install -c pytorch -c conda-forge pytorch==2.4.0 torchaudio==2.4.0 torchvision==0.19.0 micromamba install -c pytorch -c pyg -c conda-forge pyg-lib torch-scatter torch-geometric micromamba install -c pytorch -c conda-forge transformers=4.44 micromamba install tokenizers triton ``` ```bash # 查看可用版本 micromamba search -c pytorch -c conda-forge pytorch # GPU 最新版 micromamba install -c pytorch -c conda-forge pytorch torchvision torchaudio transformers=4.44 # CPU 版 micromamba install -c pytorch -c conda-forge pytorch-cpu torchvision-cpu torchaudio-cpu transformers=4.44 ``` py3.11 下部分 PyG 扩展需用 pip 按 torch 版本安装: ```bash pip install torch-sparse -f https://data.pyg.org/whl/torch-2.7.1.html pip install torch-cluster -f https://data.pyg.org/whl/torch-2.7.1.html pip install torch-spline-conv -f https://data.pyg.org/whl/torch-2.7.1.html ``` 失败教训:`-c pyg` 一把梭安装所有扩展容易失败,逐个指定版本(`torch_scatter==2.1.2 torch_cluster==1.6.3` 等)更稳妥。Windows 下 `-c pyg` 没有 win-64 构建,必定找不到包,正确做法见「常见问题」第 5 条。 ## RAG PDF 环境(environment.yml 完整示例) ```yaml # RAG PDF 增强检索系统 - Conda 环境配置 name: rag_pdf channels: - conda-forge - pkgs/main - pytorch dependencies: - python==3.12 - pip>=23.0 - numpy>=1.24.0 - pypdf>=5.0.0 - pymupdf>=1.23.0 - pytorch - torchaudio - torchvision - sentence-transformers # LangChain 核心库 - langchain>=0.3.0 - langchain-core>=1.4.7 - langchain-openai>=0.2.0 - langchain-community>=0.3.0 - langchain-text-splitters>=0.3.0 # 向量数据库 - faiss-cpu>=1.8.0 - chromadb>=0.5.0 # LLM 和嵌入 - openai>=1.50.0 - tiktoken>=0.7.0 # Streamlit Web 应用 - streamlit>=1.35.0 ``` ```bash micromamba env create -f environment.yml micromamba activate rag_pdf ```
## 1. activate 报 `prefix does not exist`,但环境明明存在 现象(Windows): ```powershell PS D:\wks> micromamba activate nlp critical libmamba Cannot activate, prefix does not exist at: 'C:\Users\itoracle\AppData\Roaming\mamba\envs\nlp' PS D:\wks> micromamba env list Name Active Path -------------------------------------- base * C:\Users\itoracle\AppData\Roaming\mamba ``` 但 `D:\app\micromamba\envs\nlp` 下环境真实存在。 根因:刚执行过 `micromamba shell init -s powershell -r D:\app\micromamba`。**init 只修改 profile 文件,对当前已打开的会话不生效**——当前窗口仍使用旧 hook,root prefix 还是默认路径 `%USERPROFILE%\AppData\Roaming\mamba`(`env list` 里 base 的指向即是佐证),于是去错误的目录找 nlp。 解决(二选一): ```powershell # 方法一:关闭窗口,重新打开 PowerShell(最推荐,让新 profile 自动加载) # 方法二:当前会话立即重载 . $PROFILE ``` 或只重刷 mamba hook: ```powershell $Env:MAMBA_ROOT_PREFIX = "D:\app\micromamba" $Env:MAMBA_EXE = "D:\app\micromamba\bin\micromamba.exe" (& $Env:MAMBA_EXE 'shell' 'hook' -s 'powershell' -r $Env:MAMBA_ROOT_PREFIX) | Out-String | Invoke-Expression micromamba activate nlp ``` 排查清单: - `micromamba env list` 看 base 指向哪里——指向默认路径就说明新 root prefix 没生效 - 检查用户/系统环境变量里是否有残留的 `MAMBA_ROOT_PREFIX` 指向旧路径 - 检查 `~/.mambarc` / `~/.condarc` 是否配置了冲突的 root_prefix / envs_dirs - Windows PowerShell 5.1 与 PowerShell 7 (pwsh) 的 profile 是两个文件,在哪种终端用就要在哪种终端 init ## 2. jupyter-lab 报 `failed to create process` 现象:已激活的环境里执行 `jupyter-lab` 报 `failed to create process.`,`where.exe jupyter-lab` 能看到路径但一运行就报错。 根因:环境被整体搬迁过(例如 `C:\micromamba\envs\py312` 搬到 `D:\app\micromamba\envs\py312`),但 `Scripts\` 下 pip 生成的控制台启动器(`*-script.py`)首行 shebang 还写死旧路径 `#!C:\micromamba\envs\py312\python.exe`。实测 72 个启动器里 53 个带旧路径(pip、jupyter、ipython、uvicorn、fastapi 等全部中招)。 快速绕过(不改文件,环境的 python.exe 本身是好的,坏的只是 .exe 启动器): ```powershell python -m jupyterlab lab python -m pip ... python -m ipython ``` 彻底修复:批量改写 shebang。三个要点:① 先备份;② 用**二进制**模式(`rb`/`wb`)替换,别用文本模式以免换行符被改;③ 不要在脚本源码里直接写反斜杠字面量——`\a` 会被 Python 当成响铃字符 `\x07`,目标路径 `D:\app` 会变成 `D:`+响铃+`pp`,非常隐蔽。用 `bytes([0x5c])` 拼出反斜杠: ```python import glob, os, shutil d = r'D:\app\micromamba\envs\py312\Scripts' BS = bytes([0x5c]) # 反斜杠字节 old = b'C:' + BS + b'micromamba' # C:\micromamba new = b'D:' + BS + b'app' + BS + b'micromamba' # D:\app\micromamba backup = os.path.join(d, '_shebang_backup_20260812') os.makedirs(backup, exist_ok=True) for p in glob.glob(os.path.join(d, '*-script.py')): shutil.copy2(p, backup) with open(p, 'rb') as f: data = f.read() if old in data: with open(p, 'wb') as f: f.write(data.replace(old, new)) ``` 验证:`jupyter-lab --version`、`pip --version`。 ## 3. jupyter 内核启动报 WinError 2 现象:jupyter-lab 能打开,但执行 notebook 报 `Error Starting Kernel [WinError 2] 系统找不到指定的文件。` 根因(两个): 1. 默认 `python3` 内核被解析到别的环境的 kernelspec,其 `argv` 是裸 `python`——Windows 上靠 PATH 找 python 很脆弱,启动上下文 PATH 里没有 python 就直接 WinError 2 2. 本环境自带的 kernelspec,`argv` 还写着搬迁前的旧路径 查看当前注册的内核:`jupyter kernelspec list --json` 解决:用本环境**绝对路径**的 python,在 user 作用域重装内核(user 作用域优先级最高,覆盖其它环境同名内核;绝对路径不依赖 PATH,彻底告别 WinError 2): ```powershell D:\app\micromamba\envs\py312\python.exe -m ipykernel install --user --name python3 --display-name "Python 3.12 (py312)" ``` 顺手把环境级 `share\jupyter\kernels\python3\kernel.json` 里的旧路径也改掉(与上一条同一套二进制替换方法)。 验证(真正拉起内核执行): ```powershell D:\app\micromamba\envs\py312\python.exe -m nbconvert --to notebook --execute --stdout 某文件.ipynb ``` ## 4. 环境搬迁类问题的共同根因与预防 问题 2、3 本质是一个:**环境被整体搬迁(或 root prefix 变了),但安装时写死的绝对路径没有同步更新**。受影响的远不止启动器: | 位置 | 残留旧路径的表现 | |------|------------------| | `Scripts\*-script.py` | 启动器首行 shebang → failed to create process | | `share\jupyter\kernels\*\kernel.json` | 内核 argv → WinError 2 | | `etc\conda\activate.d\*.bat` | 激活脚本里的旧 prefix,可能引发别的怪现象 | 预防: 1. **固定 MAMBA_ROOT_PREFIX**:系统环境变量里设成实际根目录后别再变,搬迁 root 是万恶之源 2. **尽量别整体拷贝或搬迁 envs 目录**;确需迁移时,导出 environment.yml 在新位置 `micromamba env create -f` 重建——所有绝对路径会按新路径重新生成 3. 搬迁后必查三处:启动器 shebang、kernel.json 的 argv、activate.d 脚本 排查命令: ```bash # 哪些启动器还带旧路径 grep -lF 'C:\micromamba' D:\app\micromamba\envs\py312\Scripts\*-script.py # 当前生效的内核 jupyter kernelspec list --json # python 自身是否正常(启动器坏不代表 python 坏) D:\app\micromamba\envs\py312\python.exe --version ``` 不想修就重建(导出 → 改名 → 重装): ```powershell micromamba activate py312 cd D:\app\micromamba\envs micromamba env export > env_py12.yml # 修改 env_py12.yml 文件中的环境名称为 py12 micromamba env create -f env_py12.yml micromamba activate py12 ``` ## 5. Windows 安装 PyG(torch-scatter 报 does not exist) 现象: ```powershell micromamba install -c pytorch -c pyg -c conda-forge pyg-lib torch-scatter torch-geometric ``` 报错: ```text error libmamba Could not solve for environment specs The following package could not be installed └─ torch-scatter =* * does not exist (perhaps a typo or a missing channel). ``` 下载日志里 `pyg/win-64` 只有几十 KB,那其实是空的频道索引。 根因:`pyg` conda 频道**没有 win-64 构建**。torch-scatter / torch-sparse / torch-cluster / torch-spline-conv 这些带 C++/CUDA 编译的扩展,conda 频道只提供 linux-64;pyg-lib 更是只有 Linux。`-c pyg` 的写法只在 Linux 成立,搬到 Windows 必定找不到包。 解决:pip + PyG 官方 wheel 索引(data.pyg.org 提供 Windows 预编译 wheel,按 torch 版本与 CPU/CUDA 分页)。先确认本环境的 torch 版本与构建类型: ```powershell python -c "import torch; print(torch.__version__, torch.version.cuda)" ``` 例如得到 `2.2.2 None`(CPU 版),就用 `torch-2.2.0+cpu` 这一页(2.2.0 覆盖整个 2.2.x)。两步安装: ```powershell # 1) 编译扩展——只走 PyG 索引,--no-index 避免 pip 回退到源码编译 python -m pip install --no-index --find-links https://data.pyg.org/whl/torch-2.2.0+cpu.html torch-scatter torch-sparse torch-cluster torch-spline-conv # 2) torch-geometric 本体(纯 Python) python -m pip install torch-geometric ``` 要点: - `--no-index` 强制只从 data.pyg.org 拉 wheel,否则 pip 可能去 PyPI 拿高版本 sdist 然后本地编译,Windows 上没配 MSVC/CUDA 基本必败 - 用 `python -m pip` 而不是 `pip`,绕开环境搬迁后可能损坏的 .exe 启动器 - 不要装 pyg-lib,Windows 永远没有;PyG 没有它也能正常用 索引页 URL 规律:`https://data.pyg.org/whl/torch-{major.minor}.0+{cpu|cu121|cu124}.html`,完整可用页见 `https://data.pyg.org/whl/`。 验证: ```powershell python -c "from torch_scatter import scatter; import torch; print(scatter(torch.tensor([1.,2.,3.,4.]), torch.tensor([0,0,1,1]), reduce='sum').tolist())" ``` 期望输出 `[3.0, 7.0]`,说明编译后端正常。Linux 上 `-c pyg` 仍可用,本条只针对 Windows。 ## 6. centos7 证书过旧导致安装失败 ```bash sudo yum install -y ca-certificates openssl sudo update-ca-trust force-enable sudo update-ca-trust extract # 临时生效 export SSL_CERT_FILE=/etc/ssl/certs/ca-bundle.crt micromamba env create -f env_centos7.yml # 永久生效 echo 'export SSL_CERT_FILE=/etc/ssl/certs/ca-bundle.crt' >> ~/.bashrc ```
windows环境

脚本安装

 
- 想要在哪安装,就将bin目录copy到哪里,双击install.bat即可完成安装,安装完成后需要重启命令行窗口才能生效
- bin目录下有
  - install.bat:安装脚本
  - micromamba.exe:micromamba可执行文件
  - VC_redist.x64.exe:windows SDK相关组件安装文件
  - 该bin目录已经打包为micromamba_windows_bin.zip,上传到soft目录

 
```
任务:我要写一个自动配置init micromamba的初始化bat,名为install.bat 
1. install.bat的目录为D:\app\micromamba\bin;同目录有micromamba.exe命令,VC_redist.x64.exe软件
2. micromamba.exe所在目录D:\app\micromamba\bin不是固定是,而是任意的;但它所在目录的上一级会作为MAMBA_ROOT_PREFIX使用,这里micromamba.exe的当前目录为bin,上一级目录为D:\app\micromamba
3. install.bat的首先会检查当前windows是否安装windows SDK相关组件,即是否安装了当前目录下的VC_redist.x64.exe;如果没有安装则进行安装
4. 修改策略允许执行命令行(必须):Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
5. 设置MAMBA_ROOT_PREFIX为当前目录的上一级目录,这里是D:\app\micromamba,然后执行micromamba.exe shell init -s cmd.exe -r D:\app\micromamba初始化micromamba环境变量
6. 执行micromamba.exe shell init前发现已经执行过了的时候,则覆盖上次的初始化环境变量,因为可能会更换目录
```
    

 

    

 
如果需要,则可以安装windows SDK相关组件,安装C++相关,安装windows SDK
winget install Microsoft.VCRedist.2015+.x64 --accept-source-agreements --accept-package-agreements
或直接下载 VC_redist.x64.exe安装
再次强调:不管是pytorch,uv,还是micromamba,如果安装过程中遇到异常,首先要考虑是否缺少windows SDK相关组件,安装后重试即可


d:
cd app 
md micromamba 
Invoke-Webrequest -URI https://micro.mamba.pm/api/micromamba/win-64/latest -OutFile micromamba.tar.bz2

解压,添加path环境变量,
D:\app\micromamba\Library\bin

修改策略允许执行命令行(必须)
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

或者以管理员身份运行PowerShell,执行下面的命令,允许执行命令行
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
# 创建配置文件目录(如果不存在)
New-Item -ItemType Directory -Force -Path (Split-Path $PROFILE)
# 创建空配置文件
New-Item -ItemType File -Path $PROFILE -Force

PS C:\Users\itoracle_17068343192> Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
PS C:\Users\itoracle_17068343192> Test-Path $PROFILE
True

重启窗口

下面的二选一,
micromamba.exe shell init -s powershell -r D:\app\micromamba
micromamba.exe shell init -s cmd.exe -r D:\app\micromamba
micromamba --version

```
> micromamba.exe shell init -s powershell -r D:\app\micromamba
Init powershell profile at 'C:\Users\itoracle_17068343192\Documents\WindowsPowerShell\profile.ps1'

Windows long-path support enabled.

关闭当前窗口,打开新窗口或者重启电脑 

PS D:\wks> micromamba --version
2.5.0
```

 
micromamba.exe  create -n py312 python=3.12 -c conda-forge
micromamba.exe  activate py312

micromamba install -c pytorch -c conda-forge pytorch==2.4.0 torchaudio==2.4.0 torchvision==0.19.0

micromamba install -c pytorch -c conda-forge pytorch torchaudio torchvision
micromamba install -c pytorch -c pyg -c conda-forge pyg-lib torch-scatter torch-geometric

 


 
创建python3.12版本的虚拟环境;如果不指定python版本,则默认使用全局的python版本
Remove-Item -Recurse -Force .venv; uv venv --python 3.12 .venv

uv add torch torchaudio  torchvision  transformers -i https://pypi.tuna.tsinghua.edu.cn/simple

指定版本安装
uv add torch==2.4.0 torchaudio==2.4.0 torchvision==0.19.0 transformers==4.44.0 -i https://pypi.tuna.tsinghua.edu.cn/simple

卸载已有的torch等相关包,重新安装
& .\.venv\Scripts\Activate.ps1; pip uninstall -y torch torchaudio torchvision; pip install torch torchaudio torchvision --index-url https://pypi.org/simple/

 
如果需要,则可以安装windows SDK相关组件,安装C++相关,安装windows SDK
winget install Microsoft.VCRedist.2015+.x64 --accept-source-agreements --accept-package-agreements
或直接下载 VC_redist.x64.exe安装
再次强调:不管是pytorch,uv,还是micromamba,如果安装过程中遇到异常,首先要考虑是否缺少windows SDK相关组件,安装后重试即可

    

 

    

 


 


 


 


 


 


python IDE及git

 

https://blog.jetbrains.com/zh-hans/pycharm/

PyCharm Community Edition

https://www.jetbrains.com/pycharm/download/?section=windows

https://download-cdn.jetbrains.com/python/pycharm-community-2024.3.2.exe


pycharm-community-2024.3.1.1.tar.gz
    
pycharm-community-2024.3.2.tar.gz
    

pycharm拉取git仓库

 
新版的Pycharm拉取git仓库让输入 口令,没有了用户名与密码界面

此时若没有口令,可随意输入一串字符,点击登录

因为这口令是假的,所以会得到一个错误提示... 

关键是这错误提示面板上,有一个指向git用户名与密码登录的链接

点击该链接输入用户名与密码,就可以使用之前的方式登录了

 
Pycharm新建一个git项目或者自己初始化一个git项目

mkdir repo
cd repo 
git init 

git remote add origin http://192.168.11.2:8888/repo.git

git pull origin dev  #拉取指定分支,默认为main 

此时用IDE打开目录,修改一文件推送,IDE就会提示输入口令... 
正常情况下,文件变化后,文件在IDE中变色,如果没有变色,可以重启一下IDE     


 
先更新后提交

提交时,若远程有多个分支,可以选提交到哪个分支  
    

 

git服务器端
sudo apt update
sudo apt install git openssh-server openssh-client

git --version
sudo systemctl status ssh 
sudo systemctl enable ssh

初始化仓库,--bare代表仓库是裸的,方便之后上传文件
cd 
mkdir myrepo.git
cd myrepo.git
git init --bare

ssh git@192.168.1.133

客户端
git config --global user.name "xuetu"
git config --global user.email "itoracle@163.com"

cd /tmp/
git clone git@192.168.1.133:~/myrepo.git


cd myrepo
touch README.md
echo "hello git!" > README.md

git status 
git add fil1 fil2  #指定文件 
git add .    #所有修改过的文件 

git add . 
git commit -m "init"


查看提交历史记录
$ git log
commit 60a201dbbef8a2b3001b2787e36d0802d1967f91 (HEAD -> master)
Author: xuetu 
Date:   Fri Feb 7 20:41:24 2025 +0800

    init


git push origin master

 

    

 

    

 


 

  

 


ubuntu·docker 环境

 
网络不好时,最好配置一个国内的ubantu源,此次安装Ubantu20.04.4
sudo add-apt-repository ppa:graphics-drivers/ppa  
sudo apt update  
sudo apt upgrade

使用ubuntu-drivers工具检测可用的NVIDIA驱动,并安装推荐的驱动:
ubuntu-drivers devices  
sudo ubuntu-drivers autoinstall

 
nvidia-smi

    

 

    

 
sudo apt-get update
sudo apt install docker.io

systemctl unmask docker.service
systemctl unmask docker.socket
systemctl start docker.service

sudo systemctl start docker
sudo systemctl enable docker
docker -v

curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
  && curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
    sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
    sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list

sed -i -e '/experimental/ s/^#//g' /etc/apt/sources.list.d/nvidia-container-toolkit.list

sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit

sudo apt-get install -y  nvidia-docker2

sudo systemctl restart docker

 
docker run -itd --privileged --name qs01 -h qs01  --gpus all --net=host -v /wks:/wks -v /data:/data  -v /opt:/opt  -v /tmp:/tmp -v /media:/media -v /mnt:/mnt -e NVIDIA_DRIVER_CAPABILITIES=compute,utility -e NVIDIA_VISIBLE_DEVICES=all ubuntu:24.04  bash

docker exec -it qs01 bash 

alias qs011="sudo docker start qs01"
alias qs012="sudo docker stop qs01"
alias qs01="sudo docker exec -it qs01 su - xt"


 



 


 

  

 


WSL·docker 环境

共享主机IP

 
WSL 24.04 , docker 24.04 ,内外环境一致

独立网段

 
docker network rm  mydk
docker network create --subnet=192.168.73.0/24 mydk

docker run -itd --privileged --name uu -h uu  --gpus all --net mydk --ip 192.168.73.11 -p 22001:22 -p 8009:8009 -p 8008:8008 -p 8007:8007 -p 8006:8006 -p 8005:8005 -p 8004:8004 -p 8003:8003 -p 8002:8002 -p 8001:8001 -p 8000:8000 -p 9000:9000 -p 9001:9001 -p 9002:9002 -p 9003:9003 -p 3306:3306 -p 8889:8889 -p 8888:8888 -p 8887:8887 -p 8886:8886 -p 8885:8885 -p 8884:8884 -p 8883:8883 -p 11434:11434  -v /wks:/wks -v /data:/data  -v /opt:/opt  -v /media:/media -v /mnt:/mnt -e NVIDIA_DRIVER_CAPABILITIES=compute,utility -e NVIDIA_VISIBLE_DEVICES=all xt:1.1  bash

alias uu1="sudo docker start uu"
alias uu2="sudo docker stop uu"
alias uu="sudo docker exec -it uu bash"

增加端口映射

 
docker run -itd --privileged --name uu -h uu  --gpus all --net mydk --ip 192.168.73.11 -p 22001:22 -p 8009:8009 -p 8008:8008 -p 8007:8007 -p 8006:8006 -p 8005:8005 -p 8004:8004 -p 8003:8003 -p 8002:8002 -p 8001:8001 -p 8000:8000 -p 9000:9000 -p 9001:9001 -p 9002:9002 -p 9003:9003 -p 3306:3306 -p 8889:8889 -p 8888:8888 -p 8887:8887 -p 8886:8886 -p 8885:8885 -p 8884:8884 -p 8883:8883 -p 11434:11434  -v /wks:/wks -v /data:/data  -v /opt:/opt  -v /media:/media -v /mnt:/mnt -e NVIDIA_DRIVER_CAPABILITIES=compute,utility -e NVIDIA_VISIBLE_DEVICES=all xt:1  bash

alias uu1="sudo docker start uu"
alias uu2="sudo docker stop uu"
alias uu="sudo docker exec -it uu bash"

alias jpy="nohup jupyter-lab --ip=0.0.0.0 --no-browser --allow-root & "

 


 

    

 
su - py1 
sudo mkdir /wks/python/py1
sudo chown -R py1:py1 /wks/python/py1

sudo chown -R py1:root  /wks/python/soft/Python-3.11.11
cd /wks/python/soft/Python-3.11.11
./configure --prefix=/wks/python/py1 --enable-optimizations

    

 
checking for stdlib extension module _sqlite3... yes
checking for stdlib extension module _tkinter... yes
checking for stdlib extension module _uuid... yes
checking for stdlib extension module zlib... yes
checking for stdlib extension module _bz2... yes
checking for stdlib extension module _lzma... yes
checking for stdlib extension module _ssl... yes

checking for stdlib extension module _ctypes_test... yes

 
make
make install

cd /wks/python/py1/bin
ln -s python3 python
ln -s pip3 pip

#export PYTHONPATH=自己的工作目录 
export PYTHONHOME=/wks/python/py1
export PATH=$PYTHONHOME/bin:$PATH

py1@qs01:~$ which python
/wks/python/py1/bin/python
py1@qs01:~$ which pip
/wks/python/py1/bin/pip

 

机器学习见前面安装部分
深度学习这里指定版本安装 

pip install torch==2.5.1 torchvision==0.20.1 torchaudio==2.5.1 -i https://pypi.tuna.tsinghua.edu.cn/simple

pip install torch-scatter -f https://data.pyg.org/whl/torch-2.5.1+cu124.html
pip install torch-sparse -f https://data.pyg.org/whl/torch-2.5.1+cu124.html
pip install torch-geometric
pip install torch-cluster -f https://data.pyg.org/whl/torch-2.5.1+cu124.html
pip install torch-spline-conv -f https://data.pyg.org/whl/torch-2.5.1+cu124.html
pip install onnx onnxruntime skl2onnx onnxmltools
pip install imblearn


 
sudo apt update
sudo apt install nginx
sudo systemctl start nginx
sudo systemctl enable nginx
sudo systemctl status nginx

/usr/local/nginx/sbin/nginx -v

jupyter启动

 
jupyter-lab --ip=0.0.0.0 --port=8888 --no-browser --allow-root --NotebookApp.token='mytoken' --NotebookApp.base_url='/py1'
    

nginx配置

 
xt@xuetu:/etc/nginx/conf.d$ sudo vim jupyter.conf

server {
    listen 18888;
    server_name 172.24.40.18;  # 替换为你的服务器域名或IP地址,或者留空使用默认配置

    # 设置日志路径(可选)
    access_log /var/log/nginx/jupyter_access.log;
    error_log /var/log/nginx/jupyter_error.log;

    location /py1/ {
        proxy_pass http://192.168.73.11:8888/py1/;  # Docker 容器内 Jupyter Notebook 的 IP 和端口
        proxy_set_header Host $host;
        proxy_set_header Origin "";
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;

        # 如果 Jupyter Notebook 使用了 WebSocket,需要添加以下配置
        proxy_http_version 1.1;
        proxy_read_timeout 86400;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";

    }

}

 
$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

sudo systemctl restart nginx

 
jupyter后台启动
nohup jupyter-lab --ip=0.0.0.0 --port=8888 --no-browser --allow-root --NotebookApp.token='mytoken' --NotebookApp.base_url='/py1' & 

alias jpy="nohup jupyter-lab --ip=0.0.0.0 --port=8888 --no-browser --allow-root --NotebookApp.token='mytoken' --NotebookApp.base_url='/py1' & "


页面访问
http://172.24.40.18:18888/py1

 
添加端口映射后,查看运行的容器显示有些乱

自定义排版显示

 
vim dps.sh 
#!/bin/bash

echo -e "CONTAINER ID\tIMAGE\t\tNAMES\t\tCOMMAND\t\tSTATUS"
docker ps -a --format "\t\t\t\t\t\t\t"
  

 
chmod +x dps.sh 

$ ./dps.sh
CONTAINER ID    IMAGE           NAMES           COMMAND         STATUS
83132bf2ab3c    xt:1            p0              "bash"          Up 21 minutes
811150dba458    aml:1.3         ml              "bash"          Exited (255) 26 hours ago
1374a22aa837    ml:0.1          kl              "bash"          Exited (255) 28 hours ago
  

 


 

echo '%langchain ALL=(ALL) NOPASSWD:ALL' > /etc/sudoers.d/langchain
su - langchain
sudo mkdir /wks/python/langchain
sudo chown -R langchain:langchain /wks/python/langchain

sudo chown -R langchain:root  /wks/python/soft/Python-3.11.11
cd /wks/python/soft/Python-3.11.11
./configure --prefix=/wks/python/langchain --enable-optimizations

make
make install

 
cd /wks/python/langchain/bin
ln -s python3 python
ln -s pip3 pip

export PYTHONHOME=/wks/python/langchain
export PATH=$PYTHONHOME/bin:$PATH


which python
/wks/python/langchain/bin/python

which pip
/wks/python/langchain/bin/pip

 


 
root@xuetu:/# du -sh wks/
57G     wks/

root@xuetu:/# tar -zcvf wks_wsl.tar.gz /wks/

xt@xuetu:~$ ./dps.sh
CONTAINER ID   IMAGE     NAMES     COMMAND   STATUS
fc59b8317e80   aml:1.5   ml        "bash"    Exited (255) 10 days ago
f8f8032ccd3f   xt:1.1    uu        "bash"    Up 23 minutes

xt@xuetu:~$ sudo docker images
REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
xt           1.1       30831d548c2a   12 days ago    13.4GB
aml          1.5       921082d9c13d   12 days ago    38.9GB
ubuntu       24.04     a04dc4851cbc   2 months ago   78.1MB

docker commit -m "reinstall" -a "73biji" f8f8032ccd3f xt:1.2 

root@xuetu:~# docker images
REPOSITORY   TAG       IMAGE ID       CREATED          SIZE
xt           1.2       71f28b9d41d1   13 seconds ago   76.3GB
xt           1.1       30831d548c2a   12 days ago      13.4GB
aml          1.5       921082d9c13d   12 days ago      38.9GB
ubuntu       24.04     a04dc4851cbc   2 months ago     78.1MB

docker run -itd --privileged --name ii -h ii  --gpus all --net host -v /wks:/wks -v /data:/data  -v /opt:/opt  -v /media:/media -v /mnt:/mnt -e NVIDIA_DRIVER_CAPABILITIES=compute,utility -e NVIDIA_VISIBLE_DEVICES=all xt:1.2  bash

xt@xuetu:~$ ./dps.sh
CONTAINER ID   IMAGE     NAMES     COMMAND   STATUS
c4d472811a2f   xt:1.2    ii        "bash"    Up 15 seconds
fc59b8317e80   aml:1.5   ml        "bash"    Exited (255) 10 days ago
f8f8032ccd3f   xt:1.1    uu        "bash"    Up 53 minutes

docker exec -it ii bash


  

 


root@ii:/opt/wks/web73# ./web73 -addr=localhost:33033
addr:localhost:33033,upload dir:/tmp
    

 

    
ollama

 
添加用户,非必须,可直接使用现有用户
adduser ollama
echo '%ollama ALL=(ALL) NOPASSWD:ALL' > /etc/sudoers.d/ollama
su - ollama
    

 
创建安装目录
ollama@uu:~$ cd /wks/python/
ollama@uu:/wks/python$ ls
jupyter  py1  requirements_ubuntu_py311_gpu.txt  soft  ubuntu_py311_gpu  ubuntu_sqlite3  ubuntu_ssl3
ollama@uu:/wks/python$ sudo mkdir ollama
ollama@uu:/wks/python$ sudo chown -R ollama:ollama ollama/

vim .bashrc
export OLLAMA_MODELS=/wks/python/ollama
    
. ./.bashrc


安装  
curl -fsSL https://ollama.com/install.sh | sh
    
>>> Installing ollama to /usr/local
>>> Downloading Linux amd64 bundle
######################################################################## 100.0%
>>> Adding ollama user to video group...
>>> Adding current user to ollama group...
>>> Creating ollama systemd service...
WARNING: systemd is not running
WARNING: see https://learn.microsoft.com/en-us/windows/wsl/systemd#how-to-enable-systemd to enable it
>>> Nvidia GPU detected.
>>> The Ollama API is now available at 127.0.0.1:11434.
>>> Install complete. Run "ollama" from the command line.
>>> The Ollama API is now available at 127.0.0.1:11434.
>>> Install complete. Run "ollama" from the command line.


代理设置1
https://blog.csdn.net/qq_35485206/article/details/143459935

 
代理设置2,端口代理,如果有代理端口的话
vim ~/.zshrc
 
# 添加
# proxy v2
export http_proxy="http://127.0.0.1:7890"
export ftp_proxy="http://127.0.0.1:7890"
export https_proxy="http://127.0.0.1:7890"
export all_proxy="http://127.0.0.1:7890"
export no_proxy="localhost, 127.0.0.1,::1"
  
# 刷新
source ~/.zshrc
  

 
如果没有代理,有线网络不行,可以试试手机流量,有时候手机流量比有线网络还快 
- 或者多试几次 

 


    

 

    

 
服务启动
ollama serve

 
ollama list

ollama run deepseek-r1:1.5b
ollama run deepseek-r1:8b
ollama run deepseek-r1:14b
ollama run deepseek-r1:32b
ollama run deepseek-r1:70b
    

 


 


 

  

 


OS·重新安装

WSL xt环境变量

 
sudo docker start uu;sudo docker exec -it uu service ssh start;
sudo docker start ii;sudo docker exec -it ii service ssh start;

export GOWKS=/opt/wks/gowks
export GOROOT=$GOWKS/app/go
export GOBIN=$GOWKS/bin
export GOPATH=$GOWKS
export PATH=$GOROOT/bin:$GOBIN:$PATH

alias loc="/usr/local/bin/fibu  -conf /opt/wks/app/conf/web73.conf "
export PATH=/home/xt/wks/rust/rfil/xuetu/target/debug:$PATH

alias bwh="ssh -p 26225 144.34.185.72"
alias ling="ssh -p 22 'ai-aml@10.14.121.128'"

alias ml1="sudo docker start ml"
alias ml2="sudo docker stop ml"
alias ml="sudo docker exec -it ml su - aml"

alias uu1="sudo docker start uu"
alias uu2="sudo docker stop uu"
alias uu="sudo docker exec -it uu bash"
alias py1="sudo docker exec -it uu su - py1"
alias ds="sudo docker exec -it uu su - deepseek"

alias ii="docker exec -it ii bash"
alias xt="sudo docker exec -it ii su - xt"

export NODEWKS=/wks/nodejs
export NODE_BASE=$NODEWKS/app/node-v20.9.0-linux-x64/
export PATH=$NODE_PATH/.bin:$NODE_BASE/bin:$PATH
export NODE_GLOBAL=$NODEWKS/app/global
export PATH=$NODE_GLOBAL/bin:$PATH


export PATH=/wks/python/ubuntu_py3129_gpu/bin:$PATH

export LD_LIBRARY_PATH=/wks/python/ubuntu_sqlite3/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=/wks/python/ubuntu_ssl3/lib64:$LD_LIBRARY_PATH
export PYTHON_SSL_DEFAULT=/wks/python/ubuntu_ssl3  # 其中PYTHON_SSL_DEFAULT不加有时也可以

export PATH=/wks/python/ubuntu_py311_gpu/bin:$PATH

alias loc="/usr/local/bin/fibu -conf /mnt/g/wks/app/fibu/path_local.conf"
alias toaml="ssh -p 22 'ai-aml@10.14.121.128'"

export PYTHONPATH=/wks/aitpf/src:$PYTHONPATH


alias q11="sudo docker start q1"
alias q12="sudo docker stop q1"
alias q1="sudo docker exec -it q1 bash"
alias py1="ssh 'py1@192.168.73.11'"
alias nx="sudo systemctl restart nginx"
alias qiyue="ssh 'julyedu_705817@101.133.217.125'"
alias rqi="rsync -avP julyedu_705817@101.133.217.125:/students/julyedu_705817/qiyue /wks/qiyue"


export JAVA_HOME=/wks/java/jdk1.8.0_231/
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$CLASSPATH
export PATH=$JAVA_HOME/bin:$PATH

  
    

 

    

 

    

注意事项

 
这里是在WSL中创建docker, docker中通常保存的是安装软件,
为了避免docker过于庞大而不方便保存,可以参考以下方案
- 静态大文件,比如数据文件,大模型的参数文件,保存在磁盘上,要求外挂磁盘速度快且稳定
- 静态安装类型文件,与前面的区别在于该安装文件之间会存在软链接,存放于WSL系统中,挂载于docker
- docker主要创建用户,配置环境变量,保存安装过程中默认在于home目录下的一些缓存等


本次不安装下面的desktop
https://www.docker.com/products/docker-desktop/
  

容器创建

 
docker network create --subnet=192.168.73.0/24 mydk

docker run -itd --privileged --name uu -h uu  --gpus all --net mydk --ip 192.168.73.11 -p 22001:22 -p 8009:8009 -p 8008:8008 -p 8007:8007 -p 8006:8006 -p 8005:8005 -p 8004:8004 -p 8003:8003 -p 8002:8002 -p 8001:8001 -p 8000:8000 -p 9000:9000 -p 9001:9001 -p 9002:9002 -p 9003:9003 -p 3306:3306 -p 8889:8889 -p 8888:8888 -p 8887:8887 -p 8886:8886 -p 8885:8885 -p 8884:8884 -p 8883:8883 -p 11434:11434  -v /wks:/wks -v /data:/data  -v /opt:/opt  -v /media:/media -v /mnt:/mnt -e NVIDIA_DRIVER_CAPABILITIES=compute,utility -e NVIDIA_VISIBLE_DEVICES=all xt:1.1  bash

docker run -itd --privileged --name uu -h uu  --gpus all --net host -v /wks:/wks -v /opt:/opt  -v /media:/media -v /mnt:/mnt -e NVIDIA_DRIVER_CAPABILITIES=compute,utility -e NVIDIA_VISIBLE_DEVICES=all xt:1.2  bash


docker run -itd --privileged --name ii -h ii  --gpus all --net host -v /wks:/wks  -v /media:/media -v /mnt:/mnt -e NVIDIA_DRIVER_CAPABILITIES=compute,utility -e NVIDIA_VISIBLE_DEVICES=all ubase:1.0  bash


docker run -itd --privileged --name git -h git  --gpus all --net host -v /wks:/wks  -v /media:/media -v /mnt:/mnt -e NVIDIA_DRIVER_CAPABILITIES=compute,utility -e NVIDIA_VISIBLE_DEVICES=all ubase:1.0  bash
docker exec -it git bash



vim /etc/profile
alias uu1="sudo docker start uu"
alias uu2="sudo docker stop uu"
alias uu="sudo docker exec -it uu bash"


docker容器列名显示

 
vim dps.sh

#!/bin/bash

sudo docker ps -a --format "table \t\t\t\t"
echo " "
    

依赖包安装

 
apt update 

apt install build-essential
apt install net-tools vim pkg-config  git  ntpdate  libxft-dev curl cmake sudo

Asia Hong_Kong

apt install build-essential   openssh-server libssl-dev 

apt install libxinerama-dev libcairo-gobject2  libpango1.0-dev  libpangoxft-1.0-0 libpangocairo-1.0-0 libxcursor-dev libcairo2-dev libbz2-dev 

apt-get install libx11-dev libxext-dev libxtst-dev libxrender-dev libxmu-dev libxmuu-dev

apt-get install libaio-dev tcl tk expect  libldap2-dev libsasl2-dev

apt-get install rsync p7zip-full unzip

apt install alsa-utils software-properties-common ubuntu-drivers-common

sudo apt-get install libffi-dev
sudo apt-get install liblzma-dev
sudo apt-get install libsqlite3-dev

简易配置

 
adduser xt
echo '%xt ALL=(ALL) NOPASSWD:ALL' > /etc/sudoers.d/xt

chown -R xt:xt /opt/
  
  

SSH

 
docker以host的方式与主机共享了IP,那么SSH就需要修改端口
root@ii:/# vim /etc/ssh/sshd_config
#Port 22
Port 22002
PermitRootLogin prohibit-password
PasswordAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile      .ssh/authorized_keys .ssh/authorized_keys2 
  

执行以下命令启动并设置开机自启:
service ssh start
systemctl enable ssh
  

容器保存

 
到这里只是安装了一些基础的依赖包以及开启SSH,相当于基础环境版 

docker commit -m "ubuntu base env" -a "73biji" 52952cbd103e ubase:1.0 
docker save -o  ubase1.0.tar   ubase:1.0 

  

 
ssh -p 22002 xt@localhost 


windows上安装一个git,进入git bash
ssh-keygen -t rsa

ssh-keygen -t rsa
xt@ii:~$ cd /mnt/c/Users/itora/
cat .ssh/id_rsa.pub >> ~/.ssh/authorized_keys


Host xt
  HostName localhost
  Port 22002
  User xt
  IdentityFile "C:\Users\itora\.ssh\id_rsa"

git

 
ssh-keygen -t rsa
cd /mnt/c/Users/itora/
cat .ssh/id_rsa.pub >> ~/.ssh/authorized_keys

mkdir web73.git
cd web73.git
git init --bare

ssh -p22003 git@192.168.1.2

git config --global user.name "xuetu"
git config --global user.email "itoracle@163.com"

cd /tmp/
git clone ssh://git@192.168.1.2:22003/~/web73.git
git clone ssh://git@localhost:22003/~/web73.git


git bash中操作

 
itora@qisanxuetu MINGW64 /
$ cd /g
$ cd wks/web73/
$ git init
Reinitialized existing Git repository in G:/wks/web73/.git/

git config --global --add safe.directory G:/wks/web73
git add . 
git commit -m "2025-04-07 init"

git remote add web73 ssh://git@localhost:22003/~/web73.git
git push -u web73 master

cd /g/wks/web73/
git push web73 master


需要解压提交一次,平时不用git 
tar -zcvf git.tar.gz .git
rm -rf .git/

 
vim ~/.ssh/config
Host 192.168.1.2
  Port 22003
  User git
  IdentityFile ~/.ssh/your_private_key

git clone git@192.168.1.2:~/web73.git
  

 

  

同步配置

 
cd /opt 
sudo ln -s /mng/g/wks ./wks 

sudo cp /wks/gowks/src/cmd/fibu/fibu /usr/local/bin/
which fibu
/usr/local/bin/fibu
    

web73启动

 

echo "#!/bin/bash
cd /wks/web73
./web73 -addr=0.0.0.0:33033
" > ./web73.sh
chmod +x web73.sh
    

SSH:py1

 
py1@uu:~/.ssh$ cd /mnt/c/Users/itora/
py1@uu:/mnt/c/Users/itora$ cat .ssh/id_rsa.pub >>~/.ssh/authorized_keys

service ssh restart 

ssh -p 22001 py1@172.21.142.198

alias uu1="sudo docker start uu;sudo docker exec -it uu /init.sh"
alias uu="sudo docker exec -it uu /init.sh"

权限

 
sudo chown -R deepseek:deepseek /wks/python/deepseek/
sudo chown -R py1:py1 /wks/python/py1 
sudo chown -R ollama:ollama /wks/python/ollama/

 

    

WSL配置Mirrored 模式

 
xt@xuetu:/mnt/c/Users/itora$ cat .wslconfig
[experimental]
networkingMode=mirrored
autoProxy=true
hostAddressLoopback=true

 

  

 

  

xt:ollama安装

 
root@ii:/wks/python# chown -R xt:xt ollama_offline/
root@ii:/wks/python# chown -R xt:xt ollama_offline/

cd /mnt/g/kecheng/七三AI-01-env_install/docker/soft
tar -xvf ollama-linux-amd64.tgz -C /wks/python/ollama_offline/

export PATH=/wks/python/ollama_offline/bin:$PATH 

which ollama
/wks/python/ollama_offline/bin/ollama

 
ollama serve

ollama -v
ollama version is 0.6.2

vim Modelfile_14B_Q8
from /wks/models/deepseek/DeepSeek-R1-Distill-Qwen-14B-GGUF/DeepSeek-R1-Distill-Qwen-14B-Q8_0.gguf 

mkdir /wks/bigmodels/ollama
chown -R xt:xt /wks/bigmodels/ollama

export OLLAMA_MODELS=/wks/bigmodel/ollama
- 需要重启ollama

nohup ollama serve > /tmp/ollama.log 2>&1 &

ollama create DeepSeek-14B-Q8 -f Modelfile_14B_Q8
- 优先OLLAMA_MODELS
- ~/.ollama/models

xt@ii:~$ ollama list
NAME                      ID              SIZE     MODIFIED
DeepSeek-14B-Q8:latest    4d3466debbb4    15 GB    59 seconds ago

xt@ii:~$ cd /wks/bigmodels/ollama/
xt@ii:/wks/bigmodels/ollama$ du -sh *
15G     blobs
20K     manifests

 


 


 


OS·重新安装·202505

文件备份

 
cd /
tar -zcvf wks.tar.gz wks 
  

docker备份

 
docker images
docker ps -a

#aml新环境
docker commit -m "202505" -a "73biji" ml ctos7:1.2 
cd /mnt/g/bak/202505/
docker save -o ml.tar ctos7:1.2

docker commit -m "202505" -a "73biji" git ubgit:1.0  
cd /mnt/g/bak/202505/
docker save -o git.tar ubgit:1.0  

docker commit -m "202505" -a "73biji" ii dev:1.0  
cd /mnt/g/bak/202505/
docker save -o dev.tar dev:1.0   


docker commit -m "202505" -a "73biji" uu dev_bak:1.0  
cd /mnt/g/bak/202505/
docker save -o uu_bak.tar dev_bak:1.0   
    

 

    

xt

 
export GOWKS=/opt/wks/gowks
export GOROOT=$GOWKS/app/go
export GOBIN=$GOWKS/bin
export GOPATH=$GOWKS
export PATH=$GOROOT/bin:$GOBIN:$PATH

alias loc="/usr/local/bin/fibu  -conf /opt/wks/app/conf/web73.conf "
export PATH=/home/xt/wks/rust/rfil/xuetu/target/debug:$PATH

alias bwh="ssh -p 26225 144.34.185.72"
alias ling="ssh -p 22 'ai-aml@10.14.121.128'"

alias ml1="sudo docker start ml;sudo docker exec -it ml systemctl start sshd"
alias ml2="sudo docker stop ml"
alias ml="sudo docker exec -it ml bash"
alias aml="sudo docker exec -it ml su - ai-aml"

alias uu1="sudo docker start uu"
alias uu2="sudo docker stop uu"
alias uu="sudo docker exec -it uu bash"
alias ii="sudo docker exec -it ii bash"
alias xt="sudo docker exec -it ii su - xt"
alias llm="sudo docker exec -it ii su - llm"
alias py1="sudo docker exec -it uu su - py1"
alias ds="sudo docker exec -it uu su - deepseek"


export NODEWKS=/wks/nodejs
export NODE_BASE=$NODEWKS/app/node-v20.9.0-linux-x64/
export PATH=$NODE_PATH/.bin:$NODE_BASE/bin:$PATH
export NODE_GLOBAL=$NODEWKS/app/global
export PATH=$NODE_GLOBAL/bin:$PATH


export PATH=/wks/python/ubuntu_py3129_gpu/bin:$PATH

export LD_LIBRARY_PATH=/wks/python/ubuntu_sqlite3/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=/wks/python/ubuntu_ssl3/lib64:$LD_LIBRARY_PATH
export PYTHON_SSL_DEFAULT=/wks/python/ubuntu_ssl3  # 其中PYTHON_SSL_DEFAULT不加有时也可以

export PATH=/wks/python/ubuntu_py311_gpu/bin:$PATH

alias loc="/usr/local/bin/fibu -conf /mnt/g/wks/app/fibu/path_local.conf"
alias toaml="ssh -p 22 'ai-aml@10.14.121.128'"

export PYTHONPATH=/wks/aitpf/src:$PYTHONPATH


alias q11="sudo docker start q1"
alias q12="sudo docker stop q1"
alias q1="sudo docker exec -it q1 bash"
alias py1="ssh 'py1@192.168.73.11'"
alias nx="sudo systemctl restart nginx"
alias qiyue="ssh 'julyedu_705817@101.133.217.125'"
alias rqi="rsync -avP julyedu_705817@101.133.217.125:/students/julyedu_705817/qiyue /wks/qiyue"


export JAVA_HOME=/wks/java/jdk1.8.0_231/
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$CLASSPATH
export PATH=$JAVA_HOME/bin:$PATH



export SSL_CERT_DIR=/etc/ssl/certs

    

 

    

 

    

 
cd /opt 
sudo ln -s /mng/g/wks ./wks 

cd /opt/wks
sudo cp gowks/src/cmd/fibu/fibu /usr/local/bin/
which fibu
/usr/local/bin/fibu

 
echo "#!/bin/bash
cd /wks/web73
./web73 -addr=0.0.0.0:33033
" > ./web73.sh
chmod +x web73.sh

  

docker

 
cd /mnt/g/bak/202505
docker load -i dev.tar

docker network create --subnet=192.168.73.0/24 mydk

docker run -itd --privileged --name uu -h uu  --gpus all --net mydk --ip 192.168.73.11 -p 22001:22 -p 8009:8009 -p 8008:8008 -p 8007:8007 -p 8006:8006 -p 8005:8005 -p 8004:8004 -p 8003:8003 -p 8002:8002 -p 8001:8001 -p 8000:8000 -p 9000:9000 -p 9001:9001 -p 9002:9002 -p 9003:9003 -p 3306:3306 -p 8889:8889 -p 8888:8888 -p 8887:8887 -p 8886:8886 -p 8885:8885 -p 8884:8884 -p 8883:8883 -p 11434:11434  -v /wks:/wks -v /data:/data  -v /opt:/opt  -v /media:/media -v /mnt:/mnt -e NVIDIA_DRIVER_CAPABILITIES=compute,utility -e NVIDIA_VISIBLE_DEVICES=all xt:1.1  bash

docker run -itd --privileged --name uu -h uu  --gpus all --net host -v /wks:/wks -v /opt:/opt  -v /media:/media -v /mnt:/mnt -e NVIDIA_DRIVER_CAPABILITIES=compute,utility -e NVIDIA_VISIBLE_DEVICES=all xt:1.2  bash

docker run -itd --privileged --name ii -h ii  --gpus all --net host -v /wks:/wks  -v /media:/media -v /mnt:/mnt -e NVIDIA_DRIVER_CAPABILITIES=compute,utility -e NVIDIA_VISIBLE_DEVICES=all dev:1.0  bash

docker run -itd --privileged --name git -h git  --gpus all --net host -v /wks:/wks  -v /media:/media -v /mnt:/mnt -e NVIDIA_DRIVER_CAPABILITIES=compute,utility -e NVIDIA_VISIBLE_DEVICES=all ubase:1.0  bash
docker exec -it git bash



SSH

  
docker使用的是主机共享模型,就需要为SSH配置不同的端口
root@ii:/# vim /etc/ssh/sshd_config
#Port 22
Port 22002
PermitRootLogin prohibit-password
PasswordAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile      .ssh/authorized_keys .ssh/authorized_keys2 

执行以下命令启动并设置开机自启:
service ssh start
systemctl enable ssh

ssh-keygen -t rsa
cd /mnt/c/Users/itora/
cat .ssh/id_rsa.pub >> ~/.ssh/authorized_keys

可直接在git上执行 
ssh -p 22002 xt@localhost 

Host xt
  HostName localhost
  Port 22002
  User xt
  IdentityFile "C:\Users\itora\.ssh\id_rsa"
  

git

 
git config --global user.name "xuetu"
git config --global user.email "itoracle@163.com"

 

  

 

  
------------------------------------------------------------------------ 

 

  

 


docker·汇总记录

llm

 

  

docker run -itd --privileged --name ii -h ii  --gpus all --net host -v /wks:/wks -v /data:/data  -v /opt:/opt  -v /media:/media -v /mnt:/mnt -e NVIDIA_DRIVER_CAPABILITIES=compute,utility -e NVIDIA_VISIBLE_DEVICES=all xt:1.2  bash

docker run -itd --privileged --name ii -h ii  --gpus all --net host -v /wks:/wks  -v /media:/media -v /mnt:/mnt -e NVIDIA_DRIVER_CAPABILITIES=compute,utility -e NVIDIA_VISIBLE_DEVICES=all dev:1.0  bash

docker run -itd --privileged --name ii -h ii --net=host  --gpus all -v /ai:/ai -v /opt:/opt  -v /wks:/wks -v /data:/data -v /G/soft:/opt/soft  -v /mnt:/mnt  -v /media:/media  -e NVIDIA_DRIVER_CAPABILITIES=compute,utility -e NVIDIA_VISIBLE_DEVICES=all dev:2.0  bash

docker exec -it ii bash

ml:centos7

 
docker run -itd --privileged --name ml -h ml --net=host -v /wks:/wks -v /ai:/ai  -v /mnt:/mnt  -v /media:/media  cent7:latest  bash
    
docker run -itd --privileged --name ctos -h ctos --net=host -v /wks:/wks -v /ai:/ai -v /python:/python  -v /mnt:/mnt  -v /media:/media  cent7:latest  bash
docker exec -it ctos bash 

 
docker commit -m "micromamaba test" -a "73biji" 5a9bd316173f cent:v1
docker save -o centv1_20251231.tar cent:v1
docker load -i centv1_20251231.tar

docker run -itd --privileged --name ctos -h ctos --net=host -v /wks:/wks -v /ai:/ai -v /python:/python  -v /mnt:/mnt  -v /media:/media  cent:v1  bash
docker exec -it ctos bash 


 


    

 


    

 
docker run -itd --privileged --platform linux/arm64/v8 --name arm -h arm --net=host -v /opt:/opt -v /wks:/wks -v /ai:/ai  -v /mnt:/mnt  -v /media:/media  python:3.11  bash
    
sudo docker exec -it arm bash
    

POC

 
- ubntu18 python3.6.9
- 纯机器学习环境 

```
docker run -itd --privileged --name u18 -h u18 --net=host -v /wks:/wks -v /ai:/ai  -v /ai:/ai -v /opt:/opt  -v /wks:/wks -v /data:/data -v /mnt/d/soft:/opt/soft -v /mnt:/mnt  -v /media:/media  ubuntu:18.04  bash

```

```
adduser py369
mkdir /ai/app/py369
mkdir /ai/wks/soft

tar -xvf sqlite-snapshot-202212231449.tar.gz
cd sqlite-snapshot-202212231449/
mkdir /ai/app/sqlite202212

./configure -prefix=/ai/app/sqlite202212
make
make install

```

- 该方案有些复杂,直接使用现有mamba环境创建3.6.9环境

python环境

 

```

```

```
micromamba create -n py369 python=3.6.9
micromamba activate py369
micromamba run -n py369 mycommand

pip install dataclasses
micromamba install lightgbm xgboost statsmodels 
micromamba install pandas sklearn-pandas scikit-learn  matplotlib  pydotplus
micromamba install jupyter jupyter_contrib_nbextensions
micromamba install catboost

micromamba install "xgboost < 1.6" -c conda-forge

```
  

 

  

 

  

 

  

 

  
| 镜像标签 | 操作系统 | Python版本 | CUDA版本 | PyTorch版本 | 发布时间 | | ---------------------------------- | ---------------- | -------- | -------- | --------- | ---------- | | `nvcr.io/nvidia/pytorch:25.08-py3` | **Ubuntu 24.04** | 3.12.2 | 13.0.48 | 2.8.0 | 2025-08-19 | | `nvcr.io/nvidia/pytorch:24.12-py3` | **Ubuntu 24.04** | 3.12 | 12.6.2 | 2.6.0 | 2024-12-20 | | `nvcr.io/nvidia/pytorch:24.05-py3` | Ubuntu 22.04 | 3.10.12 | 12.4.131 | 2.4.0 | 2024-05-25 | | `nvcr.io/nvidia/pytorch:24.04-py3` | Ubuntu 22.04 | 3.10 | 12.4 | 2.3 | 2024-04 | | `nvcr.io/nvidia/pytorch:23.10-py3` | Ubuntu 22.04 | - | - | - | 2023-10 |

 


docker run -itd --privileged --name gpu -h gpu --net=host --gpus all -v /wks:/wks -v /ai:/ai  -v /opt:/opt  -v /data:/data -v /mnt:/mnt  -v /media:/media    -e NVIDIA_DRIVER_CAPABILITIES=compute,utility -e NVIDIA_VISIBLE_DEVICES=all nvcr.io/nvidia/pytorch:23.10-py3   bash

docker run -itd --privileged --name gpu -h gpu --net=host --gpus all -v /wks:/wks -v /ai:/ai  -v /opt:/opt  -v /data:/data -v /mnt:/mnt  -v /media:/media    -e NVIDIA_DRIVER_CAPABILITIES=compute,utility -e NVIDIA_VISIBLE_DEVICES=all  nvcr.io/nvidia/pytorch:24.12-py3 bash 

docker run -itd --privileged --name u24 -h u24 --net=host --gpus all -v /wks:/wks -v /ai:/ai  -v /opt:/opt  -v /data:/data -v /mnt:/mnt  -v /media:/media  ubuntu:24.04  bash
docker exec -it u24 bash

 


git

 

## git拉取记录
```
git init
git remote add origin http://10.14.128.2:8888/ai/bank-complaint-classifier.git

git pull origin dev
```

```

# 1. 保存当前更改
git stash

# 2. 拉取远程更新
git reset
git pull --rebase origin main

# 3. 恢复本地更改
git stash pop

# 4. 如果有冲突,解决冲突
git add .
git rebase --continue

# 5. 推送
git commit -m "tousu v1"
git push -u origin main
```


## git提交记录

```
git add .
git commit -m "tousu v1"

# 现在创建dev分支
git checkout -b dev
git push -u origin dev  # 第一次
```
```
git add .
git commit -m "tousu v1"
git push                 # 后续

```


```
-u  --set-upstream
把本次推送的远程分支(origin/dev)登记为本地分支 dev 的“上游”。
登记后,今后在该分支上直接敲 git push / git pull 就不必再写 origin dev。

-f  --force
强制推送,即用本地版本覆盖远程同名分支,不管远程是否比本地新。
会丢弃远程那端可能存在的提交,危险操作,多人协作时慎用。
```

    

 

    

 


 


 


 


 


 


参考