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 ``` |
|
|
|
|
|
|
|
-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
|
|
|
## 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 是什么
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
```
|
|
脚本安装 - 想要在哪安装,就将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相关组件,安装后重试即可
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
|
|
|
网络不好时,最好配置一个国内的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" |
|
|
|
|
|
共享主机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
|
添加用户,非必须,可直接使用现有用户
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
|
|
|
|
|
|
|
|
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 |
|
|
|
|
|
文件备份 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" ------------------------------------------------------------------------ |
|
|
|
|
|
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 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
强制推送,即用本地版本覆盖远程同名分支,不管远程是否比本地新。
会丢弃远程那端可能存在的提交,危险操作,多人协作时慎用。
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|