相关疑难解决方法(0)

sh和bash之间的区别

在编写shell程序时,我们经常使用/bin/sh/bin/bash.我经常使用bash,但我不知道它们之间有什么区别.

bash和之间的主要区别是sh什么?

我们究竟需要意识到在编程时bashsh

unix bash shell sh

1194
推荐指数
11
解决办法
46万
查看次数

如何编写Python模块/包?

我一直在为工作中的简单任务制作Python脚本,从来没有真正打扰包装它们以供其他人使用.现在我被分配为REST API创建一个Python包装器.我完全不知道如何开始,我需要帮助.

是)我有的:

(只是想尽可能具体)我已经准备好了virtualenv,它也在github中,python的.gitignore文件也是,还有用于与REST API交互的请求库.而已.

这是当前目录树

.
??? bin
?   ??? /the usual stuff/
??? include
?   ??? /the usual stuff/
??? lib
?   ??? python2.7
?       ??? /the usual stuff/
??? local
?   ??? /the usual stuff/
??? README.md

27 directories, 280 files
Run Code Online (Sandbox Code Playgroud)

我甚至不知道把.py文件放到哪里,如果我做的话.

我想做什么:

使用"pip install ..."安装python模块

如果可能的话,我想要编写Python模块的一般步骤.

python python-module python-2.7

353
推荐指数
4
解决办法
35万
查看次数

如何在Python中启动后台进程?

我正在尝试将shell脚本移植到更易读的python版本.原始shell脚本在后台使用"&"启动多个进程(实用程序,监视器等).如何在python中实现相同的效果?我希望这些进程不会在python脚本完成时死掉.我确信它与守护进程的概念有某种关系,但我无法轻易找到如何做到这一点.

python daemon process

259
推荐指数
7
解决办法
37万
查看次数

子进程中'shell = True'的实际含义

我用subprocess模块调用不同的进程.但是,我有一个问题.

在以下代码中:

callProcess = subprocess.Popen(['ls', '-l'], shell=True)
Run Code Online (Sandbox Code Playgroud)

callProcess = subprocess.Popen(['ls', '-l']) # without shell
Run Code Online (Sandbox Code Playgroud)

两者都有效.阅读文档后,我开始知道这shell=True意味着通过shell执行代码.这意味着在缺席的情况下,该过程将直接启动.

那么我应该更喜欢我的情况 - 我需要运行一个进程并获得其输出.从shell内部或外部调用它有什么好处.

python subprocess

236
推荐指数
5
解决办法
14万
查看次数

何时在shell变量周围包装引号?

有人能告诉我是否应该在shell脚本中包含变量的引号?

例如,以下是正确的:

xdg-open $URL 
[ $? -eq 2 ]
Run Code Online (Sandbox Code Playgroud)

要么

xdg-open "$URL"
[ "$?" -eq "2" ]
Run Code Online (Sandbox Code Playgroud)

如果是这样,为什么?

unix linux bash shell quotes

145
推荐指数
4
解决办法
5万
查看次数

OSError:[Errno 2]在Django中使用python子进程时没有这样的文件或目录

我试图运行一个程序在Python代码中进行一些系统调用subprocess.call(),这会引发以下错误:

Traceback (most recent call last):
      File "<console>", line 1, in <module>
      File "/usr/lib/python2.7/subprocess.py", line 493, in call
      return Popen(*popenargs, **kwargs).wait()
      File "/usr/lib/python2.7/subprocess.py", line 679, in __init__
errread, errwrite)
      File "/usr/lib/python2.7/subprocess.py", line 1249, in _execute_child
      raise child_exception
      OSError: [Errno 2] No such file or directory
Run Code Online (Sandbox Code Playgroud)

我的实际Python代码如下:

url = "/media/videos/3cf02324-43e5-4996-bbdf-6377df448ae4.mp4"
real_path = "/home/chanceapp/webapps/chanceapp/chanceapp"+url
fake_crop_path = "/home/chanceapp/webapps/chanceapp/chanceapp/fake1"+url
fake_rotate_path = "/home/chanceapp/webapps/chanceapp.chanceapp/fake2"+url
crop = "ffmpeg -i %s -vf "%(real_path)+"crop=400:400:0:0 "+ "-strict -2 %s"%(fake_crop_path)
rotate = "ffmpeg -i %s -vf "%(fake_crop_path)+"transpose=1 "+"%s"%(fake_rotate_path)
move_rotated …
Run Code Online (Sandbox Code Playgroud)

python django subprocess

124
推荐指数
3
解决办法
15万
查看次数

Python脚本在终端中执行命令

我刚才在某个地方看过这个,但似乎无法找到它.我试图找到一个命令,将在终端中执行命令,然后输出结果.

例如:脚本将是:

command 'ls -l'
Run Code Online (Sandbox Code Playgroud)

它将导致在终端中运行该命令的结果

python terminal

89
推荐指数
6
解决办法
23万
查看次数

从python中运行bash脚本

我有以下代码的问题:

callBash.py:

import subprocess
print "start"
subprocess.call("sleep.sh")
print "end"
Run Code Online (Sandbox Code Playgroud)

sleep.sh:

sleep 10
Run Code Online (Sandbox Code Playgroud)

我希望在10秒后打印"结束".(我知道这是一个愚蠢的例子,我可以简单地在python中睡觉,但这个简单的sleep.sh文件只是作为测试)

python bash call

85
推荐指数
6
解决办法
18万
查看次数

如何在Python中调用'git pull'?

使用github webhooks,我希望能够将任何更改提取到远程开发服务器.目前,在适当的目录中,git pull获取需要进行的任何更改.但是,我无法弄清楚如何从Python中调用该函数.我尝试过以下方法:

import subprocess
process = subprocess.Popen("git pull", stdout=subprocess.PIPE)
output = process.communicate()[0]
Run Code Online (Sandbox Code Playgroud)

但这会导致以下错误

回溯(最近调用最后一次):文件"",第1行,在文件"/usr/lib/python2.7/subprocess.py",第679行,在 init errread,errwrite)文件"/ usr/lib/python2. 7/subprocess.py",第1249行,在_execute_child中引发child_exception OSError:[Errno 2]没有这样的文件或目录

有没有办法可以在Python中调用这个bash命令?

python git bash github

65
推荐指数
3
解决办法
6万
查看次数

Python子进程通配符用法

import os

import subprocess

proc = subprocess.Popen(['ls','*.bc'], stdout=subprocess.PIPE, stderr=subprocess.PIPE)

out,err = proc.communicate()

print out
Run Code Online (Sandbox Code Playgroud)

此脚本应打印带有.bc后缀的所有文件,但它会返回一个空列表.如果我在命令行中手动执行ls*.bc它可以工作.在脚本中执行['ls','test.bc']也可以,但由于某些原因,星形符号不起作用..任何想法?

python subprocess wildcard

58
推荐指数
2
解决办法
3万
查看次数