Python invoke(fabric)sys.path操作

问题描述 投票:1回答:1

我已经继承了更改sys.path后使用结构运行命令的代码。这曾经工作。但是现在使用fabric 2.5和python 3.7,我无法弄清楚如何在任务中持久保存对sys.path的更改。我有:

fabfile.py

import sys
from fabric import task

sys.path.insert(0, 'blah')
sys.path.append('blarg')
@task
def t(con):
    con.run('python3 tmp.py')

tmp.py

import sys
print(sys.path)

运行blah时,blargfab t都不存在。在阅读文档时,据我了解,这是一种传统行为,但是新近可用的配置,上下文管理器和包装器并没有为我提供一种改变方式,或者至少对我而言不是立即显而易见的。有没有一种方法可以使用Fabric实现此目的,或者我需要走另外一条路吗?

python fabric
1个回答
0
投票

如果您实际上不需要一个是前置的,而另一个是附加的,则可以通过the env var

@fabric.task
def t(con):
    con.run('python3 tmp.py', env={"PYTHONPATH": "blah:blarg"})

在这种情况下,它们都将作为前缀。

© www.soinside.com 2019 - 2024. All rights reserved.