2010-11-17 51 views
2

所以,事实证明我错过了我的PYTHONPATH定义中的分号。但是,这只能让我走到尽头。出于某种原因,我的脚本没有作为一个计划任务(在WinXP上)工作,直到我明确地将一个目录从PYTHONPATH添加到我的脚本顶部。什么时候使用sys.path.append和修改%PYTHONPATH%就够了

问题是: 什么时候需要显式地附加一些东西给我的路径,什么时候可以简单地依赖环境变量?

+0

你是如何安排脚本的? – Mark 2010-11-17 20:07:50

+0

对不起,@mark。我更新了我的问题,以显示我使用WinXP scheduledTasks进行安排。 – Ramy 2010-11-17 20:11:26

回答

4

也许你没有运行在正确的凭据(注册名)计划的任务。在“系统属性”对话框中定义环境变量时,它们可以是用户级别或系统级别。如果您将PYTHONPATH定义为用户级别,则您的计划任务必须以该用户的身份运行,以便正确设置。我相信制作它系统级别意味着它将适用于所有用户,除非他们有自己的价值定义。

下面是一个屏幕截图,显示了设置环境变量的位置。它在Windows XP和Windows 7中都很相似。右侧对话框的上半部分显示了当前用户级别的设置,下半部分列出了所有系统级别的设置。

screenshot of environment variable dialog box

如果PYTHONPATH出现在上用户级别的组名称列表,可以有效地它首先删除移动到另一个较低的一个,然后加入同一个名字的一个加上相关的价值较低的系统级设置。为了节省一些输入,您可以编辑之前的用户级变量您可以删除它,以便有机会先复制其当前值,然后取消操作。这样,当您制作新的系统级副本时,您只需将复制的值粘贴到其中即可。

+0

两件事:1)我怎么知道我是否创建了一个系统级变量。这似乎与发生了什么事,但我没有看到任何告诉我,我设置的变量是在系统还是用户级别。 2.)如果它在用户级别,我如何将其更改为系统级别? – Ramy 2010-11-17 21:12:24

+0

@Ramy:我更新了我的答案,以回答您的每一个进一步的问题。 – martineau 2010-11-18 10:56:22

0

如果其他模块属于同一个软件包,您应负责定位它们,如果它们没有以常规格式存储(即,将路径附加到sys) 。

如果其他模块是用户可配置的,则用户必须指定安装路径 槽PYTHONPATH

+0

模块属于同一个软件包意味着什么? – Ramy 2010-11-17 20:15:40

相关问题