【问题标题】:Python Script - Working on Local Environment but not on Dev ServerPython 脚本 - 在本地环境中工作,但不在开发服务器上
【发布时间】:2019-05-05 03:39:55
【问题描述】:

正如标题所说,我已经构建了一个 Python 脚本,它在我的本地系统上运行良好。但是,在我拥有的开发服务器上,结果并不相同。两个系统都运行 Ubuntu 18.04 仿生。我将在代码下方提供更多信息。

import os

matches = []
directory = '/home/mount/'
for root, dirs, files in os.walk(directory):
    for file in files:
        if file.endswith('.html'):
            matches.append(os.path.join(root, file))

print(matches)


for index, x in enumerate(matches):
    print(x)
    os.system(f'echo docker run --name nginx_{index} -p 8{index}:80 -v {x}:usr/share/nginx/html -d nginx')

我本地系统上的结果如下:

['/home/mount/test/file2.html', '/home/mount/test/file.html', '/home/mount/test/lower/file3.html']
/home/mount/test/file2.html
docker run --name nginx_0 -p 80:80 -v /home/mount/test/file2.html:usr/share/nginx/html -d nginx
/home/mount/test/file.html
docker run --name nginx_1 -p 81:80 -v /home/mount/test/file.html:usr/share/nginx/html -d nginx
/home/mount/test/lower/file3.html
docker run --name nginx_2 -p 82:80 -v /home/mount/test/lower/file3.html:usr/share/nginx/html -d nginx

这正是我想要的。基本上,该脚本会在代码顶部提供的目录中或之下的目录中查找 html 文件。然后它将它们添加到一个列表中,然后添加到一个采用 docker 命令形式的字符串中。

在服务器上,我得到的唯一输出是:

[]

这告诉我 for 循环无法正常工作。但是,我没有收到在终端中运行代码的任何错误,只是空数组。我的想法是操作系统模块可能有问题,但我不确定如何检查。任何帮助表示赞赏。

【问题讨论】:

  • /home/mount/ 存在于您的服务器上吗?
  • @Dinari 我已将服务器上的路径更改为 /home/Documents/scripts ,因为我在目录中输入密码时看到的路径不正确。叹。会改变然后更新。
  • @Dinari 是的,这正是问题所在。谢谢

标签: python html ubuntu operating-system


【解决方案1】:

正如 cmets 所说,我只是在代码中写错了目录。这样的错误总是愚蠢的。

【讨论】:

    猜你喜欢
    • 2013-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多