我有一个程序,它依赖于__file__
内置全局来提供与程序相关联的数据的路径,如path_to_stuff = os.path.join(os.path.dirname(__file__),'stuff')
。问题是,当我用python -m cProfile myprog
运行这个函数时,__file__
的值不再是myprog
的路径,而是(显然)到cProfile模块的路径,我的东西肯定不是
我读过the manual并在这里搜索,但没有看到任何关于此的内容。有没有一种方法可以(a)让cProfile保持__file__
单独使用,或者(b)在运行时知道我在cProfile下运行,这样在这种特殊情况下可以用文本字符串初始化路径?在
编辑:或者,我想,(c),有没有更好的方法可以找到一个始终在program.py?在
(b)似乎很容易做到。在你的程序.py,检查
__name__
的值。如果您直接运行程序,__name__
的值将是"__main__"
。相反,如果在cProfile下运行它,则值将不同。在编辑:我无法复制您的问题。当我尝试时,cProfile似乎不会更改}值。也可以通过调用
__name__
或{cProfile.run()
在脚本中运行探查器如果你还有问题,我已经为你找到了解决办法。在
相关问题 更多 >
编程相关推荐