将Python venv目录放置在/tmp目录下

Le Mon 17 February 2025

查看磁盘分区分布:

# df -h
Filesystem      Size  Used Avail Use% Mounted on
overlay         3.3G  1.7G  1.5G  53% /
overlay         689G  446G  216G  68% /run
tmpfs            64M     0   64M   0% /dev
tmpfs            10M  4.0K   10M   1% /.PlnPyKFp4CRfFtgC1_run
shm              64M   96K   64M   1% /dev/shm
cgroup          1.0M     0  1.0M   0% /sys/fs/cgroup
tmpfs            64M     0   64M   0% /proc/keys

在某些开发环境下,磁盘的可用空间捉襟见肘。采用更高端的设备是不可能的, 因此只能想其他办法。

将一些获取成本较低的资源放置在临时性目录中,是一种办法。

在腾讯云提供的环境中,/run/tmp目录是临时性目录。重要的是, 这些目录提供的容量都很大。

在/run或/tmp目录中建立venv

如果需要在/run目录中建立venv:

在fish shell中执行下述命令,在/run目录中建立venv。

set VENV_PATH (mktemp --directory --tmpdir=/run)
python3 -m venv $VENV_PATH
source $VENV_PATH/bin/activate.fish

如果需要在/tmp目录中建立venv:

在fish shell中执行下述命令,在/tmp目录中建立venv。

set VENV_PATH (mktemp --directory --tmpdir=/tmp)
python3 -m venv $VENV_PATH
source $VENV_PATH/bin/activate.fish

激活venv后,shell前缀会显示tmp.zTiNkeUikY,非常不直观。 可给mktemp命令传递template参数指定零时目录名称。

如果需要在/run目录中建立venv:

在fish shell中执行下述命令,在/run目录中建立venv。

set VENV_PATH (mktemp --directory --tmpdir=/run myvenv.XXXXXXXXXX)
python3 -m venv $VENV_PATH
source $VENV_PATH/bin/activate.fish

如果需要在/tmp目录中建立venv:

在fish shell中执行下述命令,在/tmp目录中建立venv。

set VENV_PATH (mktemp --directory --tmpdir=/tmp myvenv.XXXXXXXXXX)
python3 -m venv $VENV_PATH
source $VENV_PATH/bin/activate.fish

在venv中安装依赖,使用腾讯云镜像

腾讯云镜像非常稳定。

进入venv后,执行下述语句。

pelican需要的依赖:

pip install pelican markdown -i https://mirrors.cloud.tencent.com/pypi/simple

nikola需要的依赖:

pip install nikola -i https://mirrors.cloud.tencent.com/pypi/simple

nikola auto需要的依赖:

pip install aiohttp watchdog -i https://mirrors.cloud.tencent.com/pypi/simple

在venv中安装依赖,使用兰州大学开源社区镜像站的PyPI镜像

兰州大学的PyPI镜像,年久失修,有时候不能成功获取数据。需要重新执行命令,多试几次。

进入venv后,执行下述语句。

pelican需要的依赖:

pip install pelican markdown -i https://mirrors.lzu.edu.cn/pypi/web/simple

nikola需要的依赖:

pip install nikola -i https://mirrors.lzu.edu.cn/pypi/web/simple

nikola auto需要的依赖:

pip install aiohttp watchdog -i https://mirrors.lzu.edu.cn/pypi/web/simple

其他考虑

编写一个fish函数,用以快速创建venv并自动激活venv。

Par 纳兰风来, Catégorie : python

Tags :