我已经使用cx_Freeze创建了一个应用程序(Python 3.6),并且当它作为Python命令运行时,甚至可执行文件都可以正常运行。
但是,如果我使应用程序在Windows 10上自动启动(通过在shell:startup中创建快捷方式),它将创建或写入日志文件以引发UsersRef.child(currentUserID).addValueEventListener(new ValueEventListener(){
@Override
public void onDataChange(DataSnapshot dataSnapshot){
if(dataSnapshot.exists()){
String image = dataSnapshot.child("Tuition Image").getValue().toString();
Picasso.with(AddAdsActivity.this).load(image).placeholder(R.drawable.camera).into(TuitionImage);
}
}
@Override
public void onCancelled(DatabaseError databaseError){
}
});
。我试图通过检查文件是否被锁定来创建一种解决方法,只需在文件末尾添加一个增量编号即可。
这也有效,如果我手动将日志文件设为只读,它将创建下一个日志文件,依此类推。但是通过自动启动,它会引发PermissionError
,因此它可能绝对无法写入磁盘。
是否在没有给应用程序RecursionError
的情况下就能够在启动时处理创建日志文件的魔力? :)
答案 0 :(得分:0)
您是否尝试过让应用程序在%APPDATA%
目录或%LOCALAPPDATA%
目录中创建日志文件?您可以使用以下命令在Python中获取这些目录的路径:
import os
app_data_path = os.getenv('APPDATA')
local_app_data_path = os.getenv('LOCALAPPDATA')
print(app_data_path)
print(local_app_data_path)
请参见How can I get the path to the %APPDATA% directory in Python?