【问题标题】:Python youtube-dl recompilePython youtube-dl 重新编译
【发布时间】:2012-09-22 21:45:50
【问题描述】:

旧的 youtube-dl 曾经只是一个文件,所以我很容易编辑。新版本里面有多个文件。为了让它在我的服务器上工作,我需要提取文件并更改 python 路径。现在我该如何把它重新组合起来? youtube-dl 网站说 make compile。

youtube-dl 包含 ma​​in.py、init.py、FileDownloader.py、InfoExtractors.py、PostProcessor.py、utils.py

我需要将这些脚本放回单个 youtube-dl 文件中。我正在运行 CentOS。

感谢您的帮助!

【问题讨论】:

  • 为什么需要一个文件?你不能用这个包吗?
  • 所以我可以将单个文件移动到 /usr/bin 并通过 youtube-dl 命令运行脚本。
  • 实际上,如果您只需要更改 Python 路径,那么您可以只编辑 hashbang 行而不提取整个内容。
  • 太棒了!一分钟后会在这里尝试。 :)

标签: python compilation makefile youtube-dl


【解决方案1】:

如果您只想更改解释器行(hashbang),您应该编辑文件。

因为它是一个二进制文件,你不能使用普通的文本编辑器。我建议只用 Python 脚本编辑它:

with open('youtube-dl', 'rb') as f:
    header = f.readline()
    zipfile = f.read()

with open('youtube-dl-new', 'wb') as f:
    print >> f, '#!/your/new/hashbang/line'
    f.write(zipfile)

在 Python 3 中:

with open('youtube-dl', 'rb') as f:
    header = f.readline()
    zipfile = f.read()

with open('youtube-dl-new', 'wb') as f:
    print('#!/your/new/hashbang/line', file=f)
    f.write(zipfile)

【讨论】:

  • 我猜他在找什么,是在系统路径上有 youtube-dl。
  • 也许两者都有,但他特别提到,他想把所有东西都放回/usr/bin。所以我想,这就是他之前的运行方式,也是他想再次做的事情。
  • youtube-dl 是一个带有 hashbang 标头的 zip 文件。该答案仅显示了如何编辑 hashbang 标头而无需重建嵌入式 zipfile。然后youtube-dl-new可以复制到/usr/bin/youtube-dl
  • 效果很好!非常感谢你的帮助!问题解决了。 :)
  • 我也在尝试使用此脚本替换 youtube-dl 中的 hashbang 标头,因此我将您的脚本添加到名为 rename.py 的文件中并将其权限更改为 755 运行它并收到此错误: TypeError: 不支持的操作数类型 >>: 'builtin_function_or_method' 和 '_io.BufferedWriter' 你能帮帮我吗?
猜你喜欢
  • 1970-01-01
  • 2014-12-17
  • 2015-08-03
  • 1970-01-01
  • 2011-05-15
  • 1970-01-01
  • 2020-05-26
  • 1970-01-01
  • 2018-10-24
相关资源
最近更新 更多