何时使用sys.path.append,何时修改%PYTHONPATH%即可

2 投票
2 回答
2646 浏览
提问于 2025-04-16 07:14

结果发现,我在设置PYTHONPATH的时候漏掉了一个分号。不过,这只是解决了一部分问题。奇怪的是,我的脚本在Windows XP上作为定时任务运行时并没有正常工作,直到我在脚本的开头明确添加了PYTHONPATH中的一个目录。

我的问题是:什么时候我需要明确地把某个东西加到我的路径里,什么时候又可以只依赖环境变量呢?

2 个回答

0

如果其他模块属于同一个包,你需要自己找到它们,特别是当它们没有按照常规格式存储的时候(也就是说,你需要用sys来添加路径)。

如果其他模块是可以由用户配置的,那么用户就需要通过PYTHONPATH来指定安装路径。

4

也许你没有用正确的账户(登录名)来运行这个定时任务。当你在系统属性对话框中定义环境变量时,它们可以是用户级别的或者系统级别的。如果你把PYTHONPATH定义为用户级别的,那么你的定时任务必须以那个用户的身份运行,这样才能正确设置这个变量。我认为如果把它设置为系统级别,那么它就会适用于所有用户,除非他们自己定义了不同的值。

下面是一个截图,展示了在哪里设置环境变量。在Windows XP和Windows 7中,这个设置的界面是类似的。右侧对话框的上半部分显示的是当前的用户级别设置,下半部分列出了所有的系统级别设置。

环境变量对话框的截图

如果PYTHONPATH出现在上面的用户级别列表中,你可以通过先删除它,然后再在下方的系统级别设置中添加一个同名的变量和对应的值,来有效地将它移动到下面的列表中。为了节省一些输入,你可以在删除之前先编辑用户级别的变量,这样就可以先复制它的当前值,然后取消这个操作。这样,当你创建新的系统级别副本时,就可以直接粘贴复制的值了。

撰写回答