【发布时间】:2019-01-29 11:54:13
【问题描述】:
我正在尝试使用以下 python 代码激活我的 virtualenv(已经存在):
Test.py
import os, sys
filename = "activate"
exec(compile(open(filename, "rb").read(), filename, 'exec'), globals, locals)
print(os.system('pwd'))
if hasattr(sys, 'real_prefix'):
print('success')
else:
print('failed')
然后我通过终端运行这个脚本:
python Test.py
然后产生此错误:
Traceback (most recent call last):
File "activate_this.py", line 3, in <module>
exec(compile(open(filename, "rb").read(), filename, 'exec'), globals, locals)
File "activate", line 4
deactivate () {
^
SyntaxError: invalid syntax
我可以通过执行cd env/bin然后source activate成功激活virtualenv
TLDR
从 python 脚本激活 virtualenv 会在激活文件中引发语法错误。
【问题讨论】:
-
为什么不正确执行此操作并从 shell 脚本激活它,然后在其中运行您的 python?更不用说
activate是一个sh脚本,所以不确定你打算如何用python 执行它 -
^^ 不知何故,我非常怀疑,在我所有的工作经验中,我从未见过以这种方式完成过一次,通常你制作一个
sh脚本来激活你的环境然后运行你的 python 程序 -
你不能
compile()一个shell脚本... -
你为什么要在 bash 脚本上使用编译(激活)?除此之外,激活更改当前环境的环境变量以设置请求的 python 可执行文件和路径 - 从(另一个?) python 可执行文件(even if it works)运行它似乎完全没有意义 - 你为什么要这样做?
标签: python python-3.x ubuntu syntax-error virtualenv