【发布时间】:2017-05-30 11:27:12
【问题描述】:
在运行 Ubuntu 16.04 的 Vagrant VM 中,我使用以下方法创建了 Python 3 虚拟环境:
python3 -m venv /home/vagrant/venv
当我vagrant ssh 时,我可以使用以下任一方式激活它:
source /home/vagrant/venv/bin/activate
或
. /home/vagrant/venv/bin/activate
在配置期间,我正在创建文件/etc/profile.d/login-bash.sh:
cd /vagrant
. /home/vagrant/venv/bin/activate
当我 ssh 进入时,该文件正在运行,因为我从 /vagrant 共享目录开始,但第二行似乎没有做任何事情。
【问题讨论】:
-
您在 ssh 到服务器时运行的 shell 与配置期间使用的 shell 不同。你确定venv没有被激活吗?
-
这就是我在
/etc/profile.d/中创建文件的原因 - 我认为此目录中的文件在登录时运行?我知道这很有效,因为第一行按预期运行 -
如果你已经在使用虚拟机,为什么不跳过虚拟环境,根据需要配置VM的Python安装呢?
-
我更喜欢将 Python 项目与操作系统隔离
-
也许 profile.d 中有其他脚本在
login-bash.sh之后被读取,它会覆盖您的 venv 设置的路径?
标签: python bash ubuntu vagrant python-venv