我已经创建了文件夹并在其中初始化了virtualenv实例.
$ mkdir myproject
$ cd myproject
$ virtualenv env
Run Code Online (Sandbox Code Playgroud)
当我运行时(env)$ pip freeze,它会显示已安装的软件包.
现在我想重命名myproject/为project/.
$ mv myproject/ project/
Run Code Online (Sandbox Code Playgroud)
但是,现在我跑的时候
$ . env/bin/activate
(env)$ pip freeze
Run Code Online (Sandbox Code Playgroud)
它说pip没有安装.如何在不破坏环境的情况下重命名项目文件夹?
我用以下方法拼错了virtualenv它的名字:
$ virtualenv vnev
Run Code Online (Sandbox Code Playgroud)
我实际上打算用名称创建环境venv.尝试将vnev文件夹重命名为venv,我发现这并没有提供太多帮助.激活环境的名称仍然重命名旧的vnev.
$ mv vnev venv
$ . venv/bin/activate
(vnev) $ deactivate
Run Code Online (Sandbox Code Playgroud)
我想知道如何重命名环境?
我使用Gitlab CI脚本缓存了Pip包,所以这不是问题.
现在我也想要捕获Conda虚拟环境,因为它减少了设置环境的时间.
我缓存了一个虚拟环境.不幸的是,最后需要很长时间才能缓存所有的venv文件.
我试图只缓存$CI_PROJECT_DIR/myenv/lib/python3.6/site-packages文件夹,它似乎减少了管道的运行时间.
我的问题是:我做得对吗?
脚本如下:
gitlab-ci.yml
image: continuumio/miniconda3:latest
cache:
paths:
- .pip
- ls -l $CI_PROJECT_DIR/myvenv/lib/python3.6/site-packages
- $CI_PROJECT_DIR/myvenv/lib/python3.6/site-packages
before_script:
- chmod +x gitlab-ci.sh
- ./gitlab-ci.sh
stages:
- test
test:
stage: test
script:
- python eval.py
Run Code Online (Sandbox Code Playgroud)
gitlab-ci.sh
#!/usr/bin/env bash
ENV_NAME=myenv
ENV_REQUIREMENTS=requirements.txt
if [ ! -d $ENV_NAME ]; then
echo "Environment $ENV_NAME does not exist. Creating it now!"
conda create --path --prefix "$CI_PROJECT_DIR/$ENV_NAME"
fi
echo "Activating environment: $CI_PROJECT_DIR/$ENV_NAME"
source activate "$CI_PROJECT_DIR/$ENV_NAME"
echo "Installing PIP"
conda install -y pip …Run Code Online (Sandbox Code Playgroud) 如何减小 python 虚拟环境的大小?
这可能是:
site_packages,但可以删除哪一个?*.pyc文件还有什么可以删除或剥离?或者还有其他办法吗?
例如,用例是将 上传virtualenv到空间有限的服务器(例如AWS Lambda具有 512 MB 限制的功能)
python ×3
virtualenv ×3
pip ×2
aws-lambda ×1
caching ×1
conda ×1
directory ×1
gitlab-ci ×1
python-3.x ×1
ubuntu ×1