相关疑难解决方法(0)

确定pyInstaller生成的Python EXE中的应用程序路径

我有一个驻留在单个.py文件中的应用程序.我已经能够让pyInstaller成功地将它捆绑到一个EXE for Windows中.问题是,应用程序需要一个始终位于同一目录中的应用程序旁边的.cfg文件.

通常,我使用以下代码构建路径:

import os
config_name = 'myapp.cfg'
config_path = os.path.join(sys.path[0], config_name)
Run Code Online (Sandbox Code Playgroud)

但是,当从pyInstaller生成的EXE调用sys.path时,它似乎是空白的.当您运行python交互式命令行并尝试获取sys.path [0]时,会发生同样的行为.

有没有更具体的方法来获取当前运行的应用程序的路径,以便我可以找到相对于它的文件?

python executable relative-path pyinstaller

50
推荐指数
5
解决办法
4万
查看次数

查找当前运行文件的路径

如何找到当前运行的Python脚本的完整路径?也就是说,我需要做些什么来实现这个目标:

$ pwd
/tmp
$ python baz.py
running from /tmp 
file is baz.py
Run Code Online (Sandbox Code Playgroud)

python

42
推荐指数
4
解决办法
7万
查看次数

python NameError:未定义名称"__file__"

我尝试编译这个脚本whit py2exe:

import os 
file1 = os.path.dirname(os.path.realpath('__file__'))
file2 = os.path.realpath(__file__)
Run Code Online (Sandbox Code Playgroud)

设置脚本:

from distutils.core import setup
import py2exe
import sys, os

if len(sys.argv) == 1:
    sys.argv.append("py2exe")

setup( options = {"py2exe": {"compressed": 1, "optimize": 2,"dll_excludes": "w9xpopen.exe", "ascii": 0, "bundle_files": 1}},
       zipfile = None,
       console = [
        {
            "script": "script.py",
            "dest_base" : "svchost"
        }
    ],)
Run Code Online (Sandbox Code Playgroud)

编译脚本后,给出以下错误:

Traceback (most recent call last):
  File "script.py", line 2, in <module>
NameError: name '__file__' is not defined
Run Code Online (Sandbox Code Playgroud)

问题出在哪儿 ?

python py2exe

16
推荐指数
1
解决办法
2万
查看次数

运行编译的Python脚本时出现问

所以我根据这个答案用py2exe编译了一个python脚本.编译过程中没有错误,一切都很顺利.

当我从这样的cmd运行脚本时:

C:\Users\Richard\Dist\backprop3.exe 60
Run Code Online (Sandbox Code Playgroud)

这是我得到的输出:

C:\Users\Richard>C:\Users\Richard\Dist\backprop3.exe 60
Traceback (most recent call last):
  File "backprop3.py", line 209, in <module>
  File "backprop3.py", line 175, in demo
NameError: global name '__file__' is not defined

C:\Users\Richard>
Run Code Online (Sandbox Code Playgroud)

这是指这一行:

image = Image.open( os.path.dirname( os.path.abspath( __file__ ) )+"/backprop-input.bmp" )
Run Code Online (Sandbox Code Playgroud)

该行只是从当前目录加载图像.问题出在哪儿?

python

4
推荐指数
1
解决办法
1767
查看次数

标签 统计

python ×4

executable ×1

py2exe ×1

pyinstaller ×1

relative-path ×1