将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。