setup.py
from distutils.core import setup
import py2exe
setup(console=['program.py'])
错误
Traceback (most recent call last):
File "program.py", line 427, in <module>
File "program.py", line 242, in __init__
WindowsError: [Error 267] The directory name is invalid: 'C:\\Users\\Bob\applications\\Program\\test\\v0.6\\dist\\library.zip/*.*'
目录名称是指名为library
的zip文件,它位于dist文件夹中并在编译期间创建。
program.py第240-245行
file_list = []
root_dir = sys.path[0]
for path in os.listdir(root_dir):
full_path = os.path.join(root_dir, path).lower()
if os.path.isfile(full_path) and full_path.endswith('txt'):
# create list of (filename, dir) tuples
file_list.append((path.lower(), full_path))
program.py第427行
gui = GuiTk(win)
任何想法导致问题的原因是什么?我使用Windows 7 64Bit和PortablePython 2.7.2.1来创建可执行文件。编译过程中没有其他错误。
答案 0 :(得分:1)
您正在尝试列出sys.path()
中的项目。来自docs:
sys.path指定搜索路径的字符串列表 模块。从环境变量PYTHONPATH初始化,再加上一个 与安装相关的默认值。
在程序启动时初始化,此列表的第一项, path [0],是包含用于的脚本的目录 调用Python解释器。如果脚本目录不是 可用的(例如,如果以交互方式调用解释器,或者如果是 脚本是从标准输入读取的),path [0]是空字符串, 它指示Python首先搜索当前目录中的模块。 请注意,脚本目录在条目之前插入 由于PYTHONPATH而被插入。
对于像你这样的py2exe可执行文件,sys.path
是一个包含library.zip路径的列表(该存档包含安装中可能需要的所有纯源模块py2exe)工作)
但您不能将zip存档用于os.listdir
>>> import os
>>> d = 'C:\\test.zip'
>>> os.listdir(d)
Traceback (most recent call last):
File "<input>", line 1, in <module>
WindowsError: [Error 267] El nombre del directorio no es válido: 'C:\\test.zip/*.*'
>>>
可能你不是在寻找sys.path,而是在寻找变量名称所指的“当前目录”。
如果是这种情况,那么os.getcwd
将完成工作