我正在测试一些代码。主脚本需要从多个子目录导入。脚本的结构是这样的(我编辑它是为了明确dir1和dir2是build的子目录):
build
ascript.py
dir1
script2.py
dir2
script3.py
subdir1
script4.py
script5.py
subdir2
script6.py
.
.
.
注意:不是完整的表示。你知道吗
我被告知要通过命令shell测试SCRIPT2,更改到构建目录,然后键入:
SET PYTHONPATH="." python dir1/script2.py
脚本1有一个import语句:
from dir2.script3 import *
Script3从一个或多个dir或subdir文件夹中的脚本调用导入
所以当运行命令集时。(见上图)我没有得到任何输出。认为这是我的问题不是我复制dir2的代码问题
C:\PROGRAM FILES\python264
在CMD提示符下运行了相同的指令,得到了部分输出
这说明设置PYTHONPATH在windowsxp中没有按预期工作。你知道吗
我希望这个问题有道理。你知道吗
然而,在阅读了斯洛特的问题之后,我明白了一个问题,那就是我不明白我实际上是在提交两个命令
注意,在名为html的目录中有一个名为node的脚本,它是parsers2的子目录,parsers2是core的子目录,与exp处于同一级别
Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.
C:\Documents and Settings\burchkealey.UNO_CBA>cd c:\
C:\>cd c:\texttool1\build
C:\texttool1\build>set pythonpath="."
C:\texttool1\build>python exp/extract_section.py c:\testextract\c40545.htm
Traceback (most recent call last):
File "exp/extract_section.py", line 4, in <module>
from core.parsers2.html.node import *
ImportError: No module named core.parsers2.html.node
C:\texttool1\build>
命令
set PYTHONPATH=C:\texttool1\build
和dir1\script2.py
应该可以很好地工作。确保你此外,可执行脚本的编写方式通常是必须从可执行文件所在的目录执行。试着开始“提取”_截面.py”而不是从父文件夹。你知道吗
顺便说一下,将顶级包命名为“core”是不常见的,但是代码会从该包(
from core.parsers2.html.node import *
)进行全局导入。或者“核心”包含在另一个包中?也许这应该是本地导入(from .core.parsers2.html.node import *
)?你知道吗我在XP上的
PYTHONPATH
也不太走运。您可能需要为include提供一个相对路径,或者可以将目录添加到syspath:sys.path.append('biglongdirectory')
不过,我强烈反对。。。相反,这里有this option
相关问题 更多 >
编程相关推荐