我用python编写了一个程序,当使用python解释器运行时,该程序可以正确运行。它从同一目录读取一些文件。为了从其他路径运行脚本,脚本会将其工作目录更改为自己的位置。
import os
abspath = os.path.realpath(__file__)
dname = os.path.dirname(abspath)
os.chdir(dname)
但是当我将其打包到.exe时,这不起作用。因为运行.exe时__file__
变量是"main.py"
。
我知道可以通过显式设置固定路径来对其进行修复:
os.chdir('/Fixed/Path')
但是有一个优雅的解决方案吗?
答案 0 :(得分:0)
因此,这里的答案实际上分为两部分。要获取可执行文件的位置,可以使用
import os
import sys
exe = sys.executable
dname = os.path.dirname(exe)
os.chdir(dname)
要使用chdir到可执行文件的目录,您应该尝试类似
os.chdir(os.path.dirname(sys.executable))
或者简单地
static final Map<Gender, String> _genderImage = {
Gender.female: 'assets/images/gender_female.svg',
Gender.other: 'assets/images/gender_other.svg',
Gender.male: 'assets/images/gender_male.svg'
};
Widget icon = Padding(
padding: EdgeInsets.only(left: _leftPadding(context)),
child: SvgPicture.asset(
_assetName,
height: _iconSize(context),
width: _iconSize(context),
));