1

我听说 PYTHONSTARTUP 文件是一种在启动 python 时自动加载指定模块和其他代码的方法。但是 PYTHONSTARTUP 是一个全局的东西,对于所有 python 实例。是否有诸如 PYTHONSTARTUP 之类的东西可以放在特定目录中并仅在我在该目录中启动 python 时运行?

4

4 回答 4

2

这听起来像你想使用virtualenv. 它是一个工具,用于创建带有单独设置的钩子的隔离 python 环境。只需将它们放在bin/activate您的 virtualenv 中即可。

于 2013-10-23T06:55:30.203 回答
1

PYTHONSTARTUP只需在启动每个项目之前导出环境变量。

export PYTHONSTARTUP=$HOME/myproject/.pystartup
python ~/myproject/start.py

export PYTHONSTARTUP=$HOME/myotherproject/.pystartup
python ~/myotherproject/start.py

或者您可以有一个简单的 bash 文件,其中包含您希望运行的环境和 python 命令。

#!/bin/sh
# filename: workon.sh
export PYTHONSTARTUP=$HOME/myproject/.pystartup
python ~/myproject/start.py

然后:

./workon.sh
于 2013-10-23T06:24:03.223 回答
0

作为PYTHONSTARTUP环境变量,您可以在每个实例的基础上设置它。

在 sh 兼容的 shell 中,您可以在单个进程的持续时间内设置一个变量

PYTHONSTARTUP=/home/you/special.py python arguments ...

要为所有 Python 实例永久设置它,请输入类似

PYTHONSTARTUP=/home/you/regular.py
export PYTHONSTARTUP

在你的 shell 的启动文件中。

您可以覆盖当前 shell 的全局默认值:

bash$ PYTHONSTARTUP=/home/you/another.py

export PYTHONSTARTUP如果它尚未导出)或根据第一个示例用于单个进程。

在 Windows 和 Csh 兼容的 shell 中,语法的细节会有所不同,但概念大体上是相同的。

于 2013-10-23T06:25:53.037 回答
0

您可以在 python 启动文件中添加一些代码,该文件仅根据您当前的工作目录执行。

如果python.python/home/myuser/mydir.

import os

if os.getcwd()=="/home/myuser/mydir":
     print "hello"
于 2013-10-23T06:27:15.987 回答