首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在中编译脚本。使用InstaPy的exe

在中编译脚本。使用InstaPy的exe
EN

Stack Overflow用户
提问于 2020-11-06 04:45:23
回答 1查看 172关注 0票数 0

我正在使用Tkinter和InstaPy库为IG编写一个机器人。如果使用解释器运行脚本,则一切正常,但在使用pyinstaller在.exe中编译脚本后,控制台在启动浏览器后返回以下错误:

系统找不到指定的路径:'C:\Users\DANILG~1\AppData\Local\Temp_MEI12802\instapy\firefox_extension\manifest.json'.:FileNotFoundError: WinError 3

(在控制台中,错误文本是用俄语写的,这里是翻译)

起初,在我看来这是由于转义了文件路径中的"/“。但除此之外,路径中的用户名也会发生变化(它必须是DanilGolovzin,而路径指定为DANILG~1)。好吧,如果您仍然尝试转到所需的目录,忽略用户名的转义和不匹配,那么_MEI71162将不会有instapy文件夹。

console

EN

回答 1

Stack Overflow用户

发布于 2020-11-21 02:04:05

这个问题是由pyinstaller引起的。在构建脚本时,请在"browser.py“中

代码语言:javascript
复制
ext_path = os.path.abspath(os.path.dirname(__file__) + sep + "firefox_extension")

我们有这样的ext_path。当你将它作为.py运行时,它可以工作,但当你构建它时,我认为它运行在临时文件夹中,并试图在该文件夹中找到它。所以当它找不到的时候,就会抛出错误。我已经解决了像这样改变"browser.py“的问题:

代码语言:javascript
复制
def create_firefox_extension():
    ext_path = os.path.abspath(os.path.dirname(__file__) + sep + "firefox_extension")
    # safe into assets folder
    zip_file = use_assets() + sep + "extension.xpi"
    files = ["manifest.json", "content.js", "arrive.js"]
    with zipfile.ZipFile(zip_file, "w", zipfile.ZIP_DEFLATED, False) as zipf:
        for file in files:
            try:
                zipf.write(ext_path + sep + file, file)
            except :
                new_ext_path = os.getcwd()+sep+"firefox_extension"
                zipf.write(new_ext_path + sep + file, file)

    return zip_file

在进行了这些更改之后,我已经将firefox_extension复制到.exe文件夹中,它运行起来没有任何问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64705021

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档