Pyinstaller compiled binary runs from %temp% folder












0















I am using sys.path[0] in my script to detect the folder my script resides in. I have no issues running the executing the .py file.



I then compile the script using pyinstaller and run it, it fails. I noticed that when exe runs, the sys.path[0] changes to %temp%. Looks like exe runs from %temp% directory. However, in another place I reference sys.argv[1] which does not change.



For example, I see the following when exe runs:



sys.path[0] -> C:\Users\<username>\AppData\LocalTemp<temp folder>



sys.argv[1] -> C:pathwhereexe resides










share|improve this question


















  • 1





    Are you using the "One-File" mode of Pyinstaller? if so: When started it creates a temporary folder in the appropriate temp-folder location for this OS. The folder is named _MEIxxxxxx, where xxxxxx is a random number. (from the documentation)

    – John Anderson
    Nov 16 '18 at 19:44













  • Yes, I am using the --onefile option.

    – user6037143
    Nov 16 '18 at 20:18











  • So, what do you use sys.path[0] and sys.argv[1] for ?

    – John Anderson
    Nov 16 '18 at 20:21











  • Using sys.argv[1] to check for the existence of CLI argument. Not using argparse because there is no arg parsing required, the script just requires one argument to be passed to a function later. For sys.path[0], the script loads external binaries that are stored in the same folder as the script, so I needed a to detect the path the script is stored in. I changed my code to path = sys.argv[0]; path = "%s\drivers" % '\'.join(path.split('\')[0:-1]). It works now.

    – user6037143
    Nov 16 '18 at 20:27








  • 1





    For future reference, you can check if your app is being run in a Pyinstaller bundle by checking if getattr( sys, 'frozen', False ):. And if so, the absolute path to the bundle folder is sys._MEIPASS.

    – John Anderson
    Nov 17 '18 at 0:16


















0















I am using sys.path[0] in my script to detect the folder my script resides in. I have no issues running the executing the .py file.



I then compile the script using pyinstaller and run it, it fails. I noticed that when exe runs, the sys.path[0] changes to %temp%. Looks like exe runs from %temp% directory. However, in another place I reference sys.argv[1] which does not change.



For example, I see the following when exe runs:



sys.path[0] -> C:\Users\<username>\AppData\LocalTemp<temp folder>



sys.argv[1] -> C:pathwhereexe resides










share|improve this question


















  • 1





    Are you using the "One-File" mode of Pyinstaller? if so: When started it creates a temporary folder in the appropriate temp-folder location for this OS. The folder is named _MEIxxxxxx, where xxxxxx is a random number. (from the documentation)

    – John Anderson
    Nov 16 '18 at 19:44













  • Yes, I am using the --onefile option.

    – user6037143
    Nov 16 '18 at 20:18











  • So, what do you use sys.path[0] and sys.argv[1] for ?

    – John Anderson
    Nov 16 '18 at 20:21











  • Using sys.argv[1] to check for the existence of CLI argument. Not using argparse because there is no arg parsing required, the script just requires one argument to be passed to a function later. For sys.path[0], the script loads external binaries that are stored in the same folder as the script, so I needed a to detect the path the script is stored in. I changed my code to path = sys.argv[0]; path = "%s\drivers" % '\'.join(path.split('\')[0:-1]). It works now.

    – user6037143
    Nov 16 '18 at 20:27








  • 1





    For future reference, you can check if your app is being run in a Pyinstaller bundle by checking if getattr( sys, 'frozen', False ):. And if so, the absolute path to the bundle folder is sys._MEIPASS.

    – John Anderson
    Nov 17 '18 at 0:16
















0












0








0








I am using sys.path[0] in my script to detect the folder my script resides in. I have no issues running the executing the .py file.



I then compile the script using pyinstaller and run it, it fails. I noticed that when exe runs, the sys.path[0] changes to %temp%. Looks like exe runs from %temp% directory. However, in another place I reference sys.argv[1] which does not change.



For example, I see the following when exe runs:



sys.path[0] -> C:\Users\<username>\AppData\LocalTemp<temp folder>



sys.argv[1] -> C:pathwhereexe resides










share|improve this question














I am using sys.path[0] in my script to detect the folder my script resides in. I have no issues running the executing the .py file.



I then compile the script using pyinstaller and run it, it fails. I noticed that when exe runs, the sys.path[0] changes to %temp%. Looks like exe runs from %temp% directory. However, in another place I reference sys.argv[1] which does not change.



For example, I see the following when exe runs:



sys.path[0] -> C:\Users\<username>\AppData\LocalTemp<temp folder>



sys.argv[1] -> C:pathwhereexe resides







python pyinstaller






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Nov 16 '18 at 19:37









user6037143user6037143

859




859








  • 1





    Are you using the "One-File" mode of Pyinstaller? if so: When started it creates a temporary folder in the appropriate temp-folder location for this OS. The folder is named _MEIxxxxxx, where xxxxxx is a random number. (from the documentation)

    – John Anderson
    Nov 16 '18 at 19:44













  • Yes, I am using the --onefile option.

    – user6037143
    Nov 16 '18 at 20:18











  • So, what do you use sys.path[0] and sys.argv[1] for ?

    – John Anderson
    Nov 16 '18 at 20:21











  • Using sys.argv[1] to check for the existence of CLI argument. Not using argparse because there is no arg parsing required, the script just requires one argument to be passed to a function later. For sys.path[0], the script loads external binaries that are stored in the same folder as the script, so I needed a to detect the path the script is stored in. I changed my code to path = sys.argv[0]; path = "%s\drivers" % '\'.join(path.split('\')[0:-1]). It works now.

    – user6037143
    Nov 16 '18 at 20:27








  • 1





    For future reference, you can check if your app is being run in a Pyinstaller bundle by checking if getattr( sys, 'frozen', False ):. And if so, the absolute path to the bundle folder is sys._MEIPASS.

    – John Anderson
    Nov 17 '18 at 0:16
















  • 1





    Are you using the "One-File" mode of Pyinstaller? if so: When started it creates a temporary folder in the appropriate temp-folder location for this OS. The folder is named _MEIxxxxxx, where xxxxxx is a random number. (from the documentation)

    – John Anderson
    Nov 16 '18 at 19:44













  • Yes, I am using the --onefile option.

    – user6037143
    Nov 16 '18 at 20:18











  • So, what do you use sys.path[0] and sys.argv[1] for ?

    – John Anderson
    Nov 16 '18 at 20:21











  • Using sys.argv[1] to check for the existence of CLI argument. Not using argparse because there is no arg parsing required, the script just requires one argument to be passed to a function later. For sys.path[0], the script loads external binaries that are stored in the same folder as the script, so I needed a to detect the path the script is stored in. I changed my code to path = sys.argv[0]; path = "%s\drivers" % '\'.join(path.split('\')[0:-1]). It works now.

    – user6037143
    Nov 16 '18 at 20:27








  • 1





    For future reference, you can check if your app is being run in a Pyinstaller bundle by checking if getattr( sys, 'frozen', False ):. And if so, the absolute path to the bundle folder is sys._MEIPASS.

    – John Anderson
    Nov 17 '18 at 0:16










1




1





Are you using the "One-File" mode of Pyinstaller? if so: When started it creates a temporary folder in the appropriate temp-folder location for this OS. The folder is named _MEIxxxxxx, where xxxxxx is a random number. (from the documentation)

– John Anderson
Nov 16 '18 at 19:44







Are you using the "One-File" mode of Pyinstaller? if so: When started it creates a temporary folder in the appropriate temp-folder location for this OS. The folder is named _MEIxxxxxx, where xxxxxx is a random number. (from the documentation)

– John Anderson
Nov 16 '18 at 19:44















Yes, I am using the --onefile option.

– user6037143
Nov 16 '18 at 20:18





Yes, I am using the --onefile option.

– user6037143
Nov 16 '18 at 20:18













So, what do you use sys.path[0] and sys.argv[1] for ?

– John Anderson
Nov 16 '18 at 20:21





So, what do you use sys.path[0] and sys.argv[1] for ?

– John Anderson
Nov 16 '18 at 20:21













Using sys.argv[1] to check for the existence of CLI argument. Not using argparse because there is no arg parsing required, the script just requires one argument to be passed to a function later. For sys.path[0], the script loads external binaries that are stored in the same folder as the script, so I needed a to detect the path the script is stored in. I changed my code to path = sys.argv[0]; path = "%s\drivers" % '\'.join(path.split('\')[0:-1]). It works now.

– user6037143
Nov 16 '18 at 20:27







Using sys.argv[1] to check for the existence of CLI argument. Not using argparse because there is no arg parsing required, the script just requires one argument to be passed to a function later. For sys.path[0], the script loads external binaries that are stored in the same folder as the script, so I needed a to detect the path the script is stored in. I changed my code to path = sys.argv[0]; path = "%s\drivers" % '\'.join(path.split('\')[0:-1]). It works now.

– user6037143
Nov 16 '18 at 20:27






1




1





For future reference, you can check if your app is being run in a Pyinstaller bundle by checking if getattr( sys, 'frozen', False ):. And if so, the absolute path to the bundle folder is sys._MEIPASS.

– John Anderson
Nov 17 '18 at 0:16







For future reference, you can check if your app is being run in a Pyinstaller bundle by checking if getattr( sys, 'frozen', False ):. And if so, the absolute path to the bundle folder is sys._MEIPASS.

– John Anderson
Nov 17 '18 at 0:16














0






active

oldest

votes











Your Answer






StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");

StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53344310%2fpyinstaller-compiled-binary-runs-from-temp-folder%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























0






active

oldest

votes








0






active

oldest

votes









active

oldest

votes






active

oldest

votes
















draft saved

draft discarded




















































Thanks for contributing an answer to Stack Overflow!


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53344310%2fpyinstaller-compiled-binary-runs-from-temp-folder%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

鏡平學校

ꓛꓣだゔៀៅຸ໢ທຮ໕໒ ,ໂ'໥໓າ໼ឨឲ៵៭ៈゎゔit''䖳𥁄卿' ☨₤₨こゎもょの;ꜹꟚꞖꞵꟅꞛေၦေɯ,ɨɡ𛃵𛁹ޝ޳ޠ޾,ޤޒޯ޾𫝒𫠁သ𛅤チョ'サノބޘދ𛁐ᶿᶇᶀᶋᶠ㨑㽹⻮ꧬ꧹؍۩وَؠ㇕㇃㇪ ㇦㇋㇋ṜẰᵡᴠ 軌ᵕ搜۳ٰޗޮ޷ސޯ𫖾𫅀ल, ꙭ꙰ꚅꙁꚊꞻꝔ꟠Ꝭㄤﺟޱސꧨꧼ꧴ꧯꧽ꧲ꧯ'⽹⽭⾁⿞⼳⽋២៩ញណើꩯꩤ꩸ꩮᶻᶺᶧᶂ𫳲𫪭𬸄𫵰𬖩𬫣𬊉ၲ𛅬㕦䬺𫝌𫝼,,𫟖𫞽ហៅ஫㆔ాఆఅꙒꚞꙍ,Ꙟ꙱エ ,ポテ,フࢰࢯ𫟠𫞶 𫝤𫟠ﺕﹱﻜﻣ𪵕𪭸𪻆𪾩𫔷ġ,ŧآꞪ꟥,ꞔꝻ♚☹⛵𛀌ꬷꭞȄƁƪƬșƦǙǗdžƝǯǧⱦⱰꓕꓢႋ神 ဴ၀க௭எ௫ឫោ ' េㇷㇴㇼ神ㇸㇲㇽㇴㇼㇻㇸ'ㇸㇿㇸㇹㇰㆣꓚꓤ₡₧ ㄨㄟ㄂ㄖㄎ໗ツڒذ₶।ऩछएोञयूटक़कयँृी,冬'𛅢𛅥ㇱㇵㇶ𥄥𦒽𠣧𠊓𧢖𥞘𩔋цѰㄠſtʯʭɿʆʗʍʩɷɛ,əʏダヵㄐㄘR{gỚṖḺờṠṫảḙḭᴮᵏᴘᵀᵷᵕᴜᴏᵾq﮲ﲿﴽﭙ軌ﰬﶚﶧ﫲Ҝжюїкӈㇴffצּ﬘﭅﬈軌'ffistfflſtffतभफɳɰʊɲʎ𛁱𛁖𛁮𛀉 𛂯𛀞నఋŀŲ 𫟲𫠖𫞺ຆຆ ໹້໕໗ๆทԊꧢꧠ꧰ꓱ⿝⼑ŎḬẃẖỐẅ ,ờỰỈỗﮊDžȩꭏꭎꬻ꭮ꬿꭖꭥꭅ㇭神 ⾈ꓵꓑ⺄㄄ㄪㄙㄅㄇstA۵䞽ॶ𫞑𫝄㇉㇇゜軌𩜛𩳠Jﻺ‚Üမ႕ႌႊၐၸဓၞၞၡ៸wyvtᶎᶪᶹစဎ꣡꣰꣢꣤ٗ؋لㇳㇾㇻㇱ㆐㆔,,㆟Ⱶヤマފ޼ޝަݿݞݠݷݐ',ݘ,ݪݙݵ𬝉𬜁𫝨𫞘くせぉて¼óû×ó£…𛅑הㄙくԗԀ5606神45,神796'𪤻𫞧ꓐ㄁ㄘɥɺꓵꓲ3''7034׉ⱦⱠˆ“𫝋ȍ,ꩲ軌꩷ꩶꩧꩫఞ۔فڱێظペサ神ナᴦᵑ47 9238їﻂ䐊䔉㠸﬎ffiﬣ,לּᴷᴦᵛᵽ,ᴨᵤ ᵸᵥᴗᵈꚏꚉꚟ⻆rtǟƴ𬎎

Why https connections are so slow when debugging (stepping over) in Java?