特定目录的PYTHONSTARTUP文件

时间:2013-10-23 06:20:47

标签: python

我听说过PYTHONSTARTUP文件是一种在启动python时自动加载指定模块和其他代码的方法。但对于python的所有实例,PYTHONSTARTUP是一个全局的东西。有没有像PYTHONSTARTUP这样的东西,我可以放在一个特定的目录中,只有当我在该目录中启动python时才会运行?

4 个答案:

答案 0 :(得分:2)

这听起来像是要使用virtualenv。它是一个用于创建具有用于个别设置的钩子的隔离python环境的工具。只需将它们放入你的virtualenv的bin/activate

答案 1 :(得分: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

答案 2 :(得分: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中,语法的细节会有所不同,但概念基本相同。

答案 3 :(得分:0)

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

如果从.python启动python,则在/home/myuser/mydir中添加以下代码段会打印hello。

import os

if os.getcwd()=="/home/myuser/mydir":
     print "hello"