多个用户在命令行窗口中使用不在路径中的文件夹创建的模块(Anaconda 3)

2024-10-04 07:30:15 发布

您现在位置:Python中文网/ 问答频道 /正文

到目前为止,我已经以这样一种方式组织了我的项目,即我正在处理的所有内容都在同一个文件夹中,因此,为了四处玩/调试,我刚刚从该文件夹启动了Python,如下所示:

C:\Users\Username\Dropbox\Projects\MyShinyProject>Python
>>>

不过,我想开始把事情组织得更好。我已经创建了一些“实用程序”类,我希望我会反复使用它们。所以他们应该在自己的文件夹里

现在,假设我有一个Projects文件夹(在Windows中),里面有很多我一直在处理的事情的子文件夹:

Projects
    Sandbox
    Sandbox1
    Sandbox2
    MyUtilities
        __init__.py
        Utility1.py
    MyShinyProject
        __init__.py
        ImportantClass.py

我希望能够进入命令提示符并使用MyUtilities文件夹和MyShinyProject文件夹中的类/函数。但是,如果我从MyShinyProject内部启动Python,我就不能访问MyUtilities(反之亦然)。我尝试过这样的相对导入:

>>>import ..MyUtilities.Utility1

但这行不通:

import ..MyUtilities.Utility1
       ^
SyntaxError

如果有关系的话:我不使用IDE。我只使用Notepad++和命令提示符。另外,我还将__init__.py文件添加到文件夹中,因为我在某个地方读到了您在制作模块时应该这样做的内容,但我不知道如何使所有这些都正常工作,或者我是否已经接近正确工作了

我还尝试将Projects文件夹添加到Windows环境表中的PATH变量中,但似乎不起作用。即使在添加之后,导入也不起作用,当我这样做时:

import sys
for x in sys.path:
    print(x)

…我添加到路径的文件夹没有出现(我尝试将其添加到开头和结尾)

如何使用命令提示符将几个用户创建的模块一起导入


Tags: 模块pyimport文件夹内容initwindowssys
1条回答
网友
1楼 · 发布于 2024-10-04 07:30:15

假设在Projects文件夹中有__init__.py,在控制台中可以执行以下操作:

import sys
sys.path.append("C:\Users\Username\Dropbox\Projects")
import Projects.MyUtilities.Utility1

或者,如果要将所需目录永久添加到python路径,可以将目录附加到名为PYTHONPATH的环境变量的值中

相关问题 更多 >