【问题标题】:How to use os.system() inside a python executable file?如何在 python 可执行文件中使用 os.system()?
【发布时间】:2021-08-01 19:06:33
【问题描述】:

我需要运行这个命令instagram-scraper "+ username +" --media-metadata --media-types none 如您所见,在python可执行文件中是我用来执行此操作的代码,当我像py test.py那样运行它时它工作正常,但是在我使用PyInstaller命令将其转换为可执行文件后:pyinstaller -F test.py , 它不起作用并且它不返回任何错误,控制台在执行后直接消失。

import os

def getFollowers(username):
    os.system("instagram-scraper "+ username +" --media-metadata --media-types none")

getFollowers("oukebdane_med_anis")

【问题讨论】:

  • 1.您的函数不返回或打印任何内容。因此你没有输出。 2. 可执行文件不在运行打包python程序的同一个文件夹中。
  • 尝试手动启动cmd 控制台(命令窗口),然后手动运行其中的可执行文件。这将允许您查看任何错误消息。最可能的原因是instagram-scraper 实用程序不在当前目录中。
  • instagram-scraper 不是本地目录,是外部包
  • 您在 Python 环境中安装 instagram-scraperpip install instagram-scraper但是PyInstaller 使用的 Python 环境确实具有 instagram-scraper 可执行文件...

标签: python shell cmd pyinstaller


【解决方案1】:

PyInstaller 无法理解 os.system("instagram-scraper ...") 还应该捆绑那个 instagram-scraper 库。您需要在没有os.system() 的情况下使用它,PyInstaller 才能遵循参考;像

import instagram_scraper as isc

def getFollowers(username):
    scraper = isc.InstagramScraper(username=username, media_metadata=True, media_types=[])
    scraper.authenticate_as_guest()
    scraper.scrape()

可能对你有用...

【讨论】:

  • 我喜欢你尝试解决问题的方式,但是在尝试了你的代码之后我什么也没得到(没有错误也没有输出)...请尝试一下
  • 我不太在意试图规避 Instagram 的使用条款,所以我不会。我可能遗漏了一些东西,但您可以查看库的源代码以找出什么。
  • 我做了很多次,我尽可能地潜水,但我看不到丢失的部分......请帮帮我
【解决方案2】:

经过长时间的奋斗,我终于找到了解决问题的办法,按照@AKX先生建议的策略,非常感谢。

import instagram_scraper as isc

def getFollowers(username): 
    scraper = isc.InstagramScraper(usernames=[username], media_metadata=True, media_types=['none'])
    scraper.scrape()

getFollowers("oukebdane_med_anis")

注意:我尝试编辑他的答案以适应正确的解决方案,但它显示“建议的编辑队列已满”

【讨论】:

    猜你喜欢
    • 2016-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-10
    • 2020-09-13
    • 2012-02-15
    • 2021-05-12
    相关资源
    最近更新 更多