我是 Python 新手,在尝试使 PLY 正常工作时遇到了一些问题。现在,我只想从PLY 主页成功运行示例。
起初我尝试只下载 PLY-3.8,将ply文件夹放在我保存示例 ( calc.py )的同一目录中并运行它。calc.py文件位于C :\Users\...\Python目录,而ply文件夹位于C:\Users\...\Python\ply,只是为了更清楚。但我得到了一个ImportError: No module named 'ply'
.
然后我搜索了一段时间,尝试更新一个名为distutils的东西并通过 Windows PowerShell 安装模块等等,但这些都不起作用,我只是重置了整个东西(重新安装 Python 和所有这些)。但后来我终于通过简单地将我正在运行的脚本(编辑:在交互模式下)所在的目录路径插入到sys.path中,通过这样做:
import sys
sys.path.insert(0,'C:\\Users\\ ... \\Python')
这修复了ImportError但是,这就是我现在所在的位置,还有许多其他错误:
Traceback (most recent call last):
File "C:\Users\...\Python\calc.py", line 48, in <module>
lexer = lex.lex()
File "C:\Users\...\Python\ply\lex.py", line 906, in lex
if linfo.validate_all():
File "C:\Users\...\Python\ply\lex.py", line 580, in validate_all
self.validate_rules()
File "C:\Users\...\Python\ply\lex.py", line 822, in validate_rules
self.validate_module(module)
File "C:\Users\...\Python\ply\lex.py", line 833, in validate_module
lines, linen = inspect.getsourcelines(module)
File "c:\users\...\python\python35\lib\inspect.py", line 930, in getsourcelines
lines, lnum = findsource(object)
File "c:\users\...\python\python35\lib\inspect.py", line 743, in findsource
file = getsourcefile(object)
File "c:\users\...\python\python35\lib\inspect.py", line 659, in getsourcefile
filename = getfile(object)
File "c:\users\...\python\python35\lib\inspect.py", line 606, in getfile
raise TypeError('{!r} is a built-in module'.format(object))
TypeError: <module '__main__'> is a built-in module
现在我完全不知道该怎么办。我试图寻找解决方案,但没有运气。如果有人可以帮助我,我将不胜感激。
如果这些信息很重要,我在Windows 10上,使用Python 3.5.0和iep作为我的 IDE (www.iep-project.org)。
简而言之:我只想从 PLY 主页成功运行示例,然后我想我可以弄清楚其余的。
编辑:我发现如果我这样做:
import inspect
inspect.getfile(__main__)
我从以前得到完全相同的(最后一个)错误:
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "c:\users\...\python\python35\lib\inspect.py", line 606, in getfile
raise TypeError('{!r} is a built-in module'.format(object))
TypeError: <module '__main__'> is a built-in module
我认为这是罪魁祸首,但我仍然不知道如何解决它。
编辑2:我让它工作并回答了解释如何的问题,但如果有人有更完整的答案,我很想听听。