0

我对 Python 有点陌生,编写了几个脚本,但没有太多严肃的程序。我试图了解将我编写的函数/脚本(以及我将来创建的任何模块)放在哪里,以便其他程序可以访问它们。我在该主题上找到了两个不同的 Python 帮助页面(此处此处),这最终似乎表明文件需要位于文件夹中(或者可能是某个子文件夹,我不太明白行话)包含Python 可执行文件或在当前目录中。据我所知,默认的当前目录是使用PYTHONPATH环境变量设置的。但是,在设置 PYTHONPATH 后,如下面的屏幕截图所示。. .

设置 PYTHONPATH 系统变量

我打开了一个新的 Python shell 并检查了当前目录是什么。下面是产生的输出。

>>> import os
>>> os.getcwd()
'C:\\Program Files\\Python33'
>>>

有人可以解释一下我做错了什么以及如何做到这一点(如果可能的话),以便我可以访问我编写的任何给定脚本,这些脚本我已经放置在我选择指定我的主要文件夹的某个特定文件夹中工作目录(或此类目录的某些子文件夹)?我不想从C:/Program Files/Python33目录中工作。

如果需要更多信息,我很乐意提供。让我知道。

4

3 回答 3

1

你没有做错什么。当前工作目录C:/Program Files/Python33和您的设置PYTHONPATH=D:/Google Drive/Python是两个不同的东西。

使用您当前的配置,您可以轻松地将模块(*.py文件)和包(带有__init__.py文件的文件夹)放入D:/Google Drive/Python其中,然后从任何脚本中导入它们,无论您在哪里运行它。

例如,假设您已将模块mytest.py放入D:/Google Drive/Python. 现在您可以创建脚本D:/workspace/test.py(无论您在哪里创建)

import mytest

print(mytest.__file__)

D:/workspace/with运行它将python test.py打印D:/Google Drive/Python/mytest.pyD:\\Google Drive\\Python\\mytest.py(手头没有窗口:()。

于 2013-07-18T16:12:05.073 回答
1

您似乎已经打开了 python 的交互模式。我不是 100% 确定,但实际上我敢打赌,cwd在 Windows 和 *NIXes 上默认设置为调用解释器的目录。

所以问题是你是如何打开你的 python shell 的?可能来自C:\Program Files\Python33或使用了一些 IDE,它以cwd作为 python 二进制文件所在的实际目录开始。

您几乎可以随时放置文件,并从那里相对地工作。但是,您必须相应地调整您的cwd。以任何方式。通常 IDE 会提供一些项目选项来cwd手动设置。您可以从某个基本目录运行脚本。例如

cd D:
cd D:\my_python_dir\
python test.py

应该管用。也不test.py作为第二个参数给出应该启动交互式 shell 并且os.getcwd()应该给出D:/my_python_dir或等效的结果。

最后,如果您使用交互式 shell,您可以随时使用其他os功能os.chdir(path)

于 2013-07-18T16:10:40.693 回答
0

我觉得你把这两个弄混了。

PYTHONPATH模块文件的默认搜索路径。您可以阅读环境变量。它没有定义您的工作目录。

os.getcwd 返回一个代表当前工作目录的字符串。它是您打开 shell 的目录。例如,如果我在 中打开 shell /home/hugh,它会返回/home/hugh/. 如果要更改当前工作目录,可以使用os.chdir.

如果你想访问你编写的模块,你可以把它们放在你当前的工作目录或PYTHONPATH. 如果它们在 中PYTHONPATH,则与您的工作目录无关。您可以阅读有关模块搜索路径的更多信息。

于 2013-07-18T16:10:10.313 回答