【问题标题】:When to use sys.path.append and when modifying %PYTHONPATH% is enough何时使用 sys.path.append 以及何时修改 %PYTHONPATH% 就足够了
【发布时间】:2011-05-11 15:42:49
【问题描述】:

所以,我的 PYTHONPATH 定义中缺少一个分号。但这只是让我到目前为止。由于某种原因,我的脚本不能作为计划任务(在 WinXP 上)工作,直到我将 PYTHONPATH 中的目录显式添加到脚本的顶部。

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

【问题讨论】:

  • 你是如何安排脚本的?
  • 对不起,@mark。我更新了我的问题以显示我使用 WinXP 计划任务来计划。

标签: python environment-variables


【解决方案1】:

如果其他模块属于同一个包,你应该负责找到它们,如果 它们不是以传统格式存储的(即用 sys 附加路径)。

如果其他模块是用户可配置的,那么用户必须指定安装 通过 PYTHONPATH 的路径

【讨论】:

  • 模块属于同一个包是什么意思?
【解决方案2】:

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

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

如果 PYTHONPATH 出现在上层用户级别组的名称列表中,您可以通过先删除然后将相同名称和关联值之一添加到下层系统级组中来有效地将其移动到另一个下层.为了节省一点打字,您可以编辑用户级变量 before 删除它,以便有机会首先复制其当前值,然后取消操作。这样,当您制作新系统级副本时,您就可以简单地将复制的值粘贴到其中。

【讨论】:

  • 两件事:1.) 我如何判断我是否创建了系统级变量。这似乎与正在发生的事情不谋而合,但我没有看到任何地方告诉我我设置的变量是在系统级别还是在用户级别。 2.)如果是用户级别的,怎么改成系统级别的?
  • @Ramy:我更新了我的答案来回答你的每一个问题。
猜你喜欢
  • 2023-01-24
  • 2011-03-08
  • 2011-03-08
  • 1970-01-01
  • 2010-09-23
  • 1970-01-01
  • 1970-01-01
  • 2011-07-16
  • 1970-01-01
相关资源
最近更新 更多