Questions tagged «python»

Python是一种解释型通用高级编程语言,其设计理念强调代码的可读性。

6
如何获得“ realpath”以找到我的符号链接?
我使用MacOSX bash作为外壳。我有这样创建的符号链接: ln -s /usr/bin/python python2 我有一个使用python2的软件包,我想在我当前的工作目录中创建一个/usr/bin/python实际上是python2 的符号链接。当我python2从命令行执行a时,出现此错误: python2: realpath couldn't resolve "/usr/bin/python2" 但是像这样调用它./python2可以正确解析路径。我PATH有.。实际上,为了进行测试,我将其修改为仅包含.在其中。 我该如何解决?谢谢! 语境 以下建议的解决方案对我不起作用。我试图提炼出尽可能集中和简短的问题,以使人们不会淹没在文字的海洋中,但是显然我需要提供更多的背景知识。 我正在尝试从git克隆的软件包上进行开发。原始软件包,git-multimail是/是在Linux的某些变体上开发的(我猜是Ubuntu)。我一直在尝试对其进行修改,以使其能够在MacOSX上使用它及其测试套件,而只需进行尽可能少的修改。这就是一些建议的解决方案不理想的原因: 以root python2身份在/ usr / bin /中创建一个符号链接。我正在寻找不需要此解决方案的解决方案。在一开始,这是一个显而易见的选择,但是我想要一个尽可能少地修改主机系统的解决方案。这就是为什么我想在当前工作目录中创建一个临时符号链接,将CWD(即.)添加到我的路径,然后在完成时销毁它(即符号链接)。 创建包装器脚本以使用现有python调用python脚本。问题在于,大多数测试套件都将实际的script_files用作可执行文件,具体取决于shebang来找到正确的执行环境。这将意味着大量编辑测试套件。在这种情况下(有关测试框架的摘要,请参见下文),我将不得不为每个.py文件添加一个包装器;进一步,用户/开发人员将必须了解使用软件包的不同规则,具体取决于它们所在的系统(即,在MacOSX上,请确保在不通过包装或显式调用python文件的情况下,不要使用python文件/usr/bin/python file.py)。 #! /bin/sh D=$(cd $(dirname "$0") && pwd) MULTIMAIL="$D/../git-multimail/git_multimail.py" POST_RECEIVE="$D/../git-multimail/post-receive" TESTREPO=$("$D/create-test-repo") HOME="$D" XDG_CONFIG_HOME="$D" GIT_CONFIG_NOSYSTEM=1 export HOME XDG_CONFIG_HOME GIT_CONFIG_NOSYSTEM cd $TESTREPO test_email() { REFNAME="$1" OLDREV="$2" NEWREV="$3" …
13 python  symlink 

2
从Scipy使用Atlas
我安装了Ubuntu 12.04 64位。我需要使用python和scipy,我安装了它们并在运行测试时: python -c "import scipy; scipy.test()" 我收到消息: ImportError:libatlas.so.3gf:无法打开共享对象文件:没有此类文件或目录 但是,我在目录下安装了libatlas库/usr/lib/atlas-base。我知道我可以直接在下面复制文件/usr/lib,但是我不知道如何设置scipy以使用来自的库usr/lib/atlas-base?

2
在Ubuntu 10.04中将vim / gvim升级到7.3的最佳方法?
我必须在工作中使用Ubuntu 10.04,并且无法对其进行升级。我正在使用Vim / gVim 7.2。 我想将其升级到7.3(支持Python和Ruby扩展)。最好的方法是什么?在其中添加条目sources.lists并从中安装7.3 vim / gvim软件包,还是从源代码构建?每种方法都有哪些缺点?
13 vim  python  upgrade  gvim  ruby 

2
有没有办法从google-chrome中的当前标签获取网址?
我曾经使用python命令在firefox上执行此操作,但是最近发生了一些变化,无法再获取URL! 使用Firefox的工具: #!/bin/bash current_tab_num () { python2 <<< $'import json\nf = open("/home/username/.mozilla/firefox/xxxxx.default/sessionstore.js", "r")\njdata = json.loads(f.read())\nf.close()\nprint str(jdata["windows"][0]["selected"])' } current_tab_url () { sed -n "$(current_tab_num)p" <(python2 <<< $'import json\nf = open("/home/username/.mozilla/firefox/xxxxx.default/sessionstore.js", "r")\njdata = json.loads(f.read())\nf.close()\nfor win in jdata.get("windows"):\n\tfor tab in win.get("tabs"):\n\t\ti = tab.get("index") - 1\n\t\tprint tab.get("entries")[i].get("url")') } current_tab_url 谁能告诉我如何在Firefox和/或Chrome中执行此操作? 注意:我不了解python,我只是在某个地方找到了这些命令,并在bash中使用了它们!

1
Python脚本启动时如何激活Virtualenv?
我想计划在特定日期使用cron运行python脚本,问题是example.py要正常工作example-env必须被激活,有什么方法可以example.py在cron执行时激活它自己的virtualenv吗? 如果没有,那么我是否必须创建一个bash.sh包含以下内容的bash脚本: #!/usr/bin/env bash workon example-env python2 example.py 然后安排在特定日期由cron执行?还是我需要做其他事情? 两种方式对我都很好,我只想知道正确的方法。也许我更喜欢bash脚本方法,因为我有很多要运行的Python文件,因此如果我将它们全部放入bash脚本中并进行调度,这对我来说似乎比较容易,但是我仍然不知道正确的方法,因此我正在寻求建议。

2
为什么在执行bash脚本时(仅在采购它时)不能加载模块?
我正在使用模块来控制系统上的软件包,并且已python/2.7.2作为模块安装。我有一个简单的python可执行文件python_exe.py,我将从一个简单的“ driving”脚本中调用它runit.sh。runit.sh脚本看起来像: #!/bin/bash module load python/2.7.2 arg1=myarg1 arg2=15 arg3=$5 /path/to/python_exe.py -a $arg1 -b $arg2 -c $arg3 但是,当我刚运行时./runit.sh,它向我出售“模块:找不到命令”。source runit.sh但是,当我使用时,它将正确加载模块。为什么是这样?
13 bash  shell  python 

4
如何在bash脚本中包含python脚本
我需要在bash脚本中包括以下python脚本。 如果bash脚本成功结束,则需要执行以下脚本: #!/usr/bin/python from smtplib import SMTP import datetime debuglevel = 0 smtp = SMTP() smtp.set_debuglevel(debuglevel) smtp.connect('192.168.75.1', 25) smtp.login('my_mail', 'mail_passwd') from_addr = "My Name <my_mail@192.168.75.1>" to_addr = "<my_mail@192.168.75.1" subj = "Process completed" date = datetime.datetime.now().strftime( "%d/%m/%Y %H:%M" ) #print (date) message_text = "Hai..\n\nThe process completed." msg = "From: %s\nTo: %s\nSubject: …

1
在json.tool上找不到文档
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为Unix&Linux Stack Exchange 的主题。 3年前关闭。 我可以在网上找到分散的文章,这些文章使用json.tool生成漂亮的python,但没有关于用法的清晰文档。我检查了docs.python。但是没有json.tool的正式文档。 我有几个工作流程(由其他人编写),它们使用json.tool来验证json,但是我也看到过一些警告json.tool并不总是产生有效json的帖子。所以我想更多地了解json.tool的工作原理。 任何人都可以在json.tool上推荐包含清晰,全面文档的地方吗?
12 python  json 

4
使用Python和Scapy嗅探Pi上的ARP
我正在尝试使用Raspberry Pi从网络上的特定无线设备查找ARP请求。这是那些亚马逊破折号按钮之一。破折号连接到wifi时,有人使用此代码进行侦听。 from scapy.all import * def arp_display(pkt): if pkt[ARP].op == 1: #who-has (request) if pkt[ARP].psrc == '0.0.0.0': # ARP Probe if pkt[ARP].hwsrc == '74:75:48:5f:99:30': # button 1 print "Pushed Huggies" elif pkt[ARP].hwsrc == '10:ae:60:00:4d:f3': # button 2 print "Pushed Elements" else: print "ARP Probe from unknown device: " + …
12 python  arp  scapy 

2
在debian上安装新版本和旧版本的python?
如何在Debian(jessie)上安装python的附加版本。在Ubuntu上,我可以使用“ deadsnakes” PPA,它将为我提供我想要的任何python版本,并在命令中提供版本名称(例如python33python 3.3)。这使我可以将它们彼此并排安装。我可以使用virtualenvs为特定版本安装特定的python软件包,而不会弄乱系统软件包。我维护了一些python库,它们需要在许多版本的python上工作。如果我安装了python二进制文件,那么tox将负责为每个python版本使用virtualenvs。 那么Ubuntu的Deadsnakes PPA的debian等效功能是什么? 更新我想安装python:2.6、2.7、3.3、3.4和3.5。
12 debian  python 

1
如何获得启动`sudo`的用户名
我的问题:我有一个Python程序,用户使用来启动它sudo。有时我必须要到用户的家,而我只能知道它的名字才能做到这一点: import pwd pwd.getpwnam(username) 那么:如何获得启动该程序的用户名?
12 users  sudo  python 

1
没有这样的文件或目录,但我可以看到它!
我正在尝试使用winSCP在无头的Raspberry PI上运行python脚本,并得到以下错误消息: Command '"./areadetect_movie_21.py"' failed with return code 127 and error message /usr/bin/env: python : No such file or directory. 当我尝试从终端运行时,我得到: : No such file or directory. 我尝试在相同的目录中使用相同的python shebang,相同的权限并使用相同的用户pi使用类似的python脚本,并且可以正常工作。 我也这样做了,ls并且可以看到该文件,所以我不知道为什么它将无法运行。

4
如何更正点子的路径?
我试图让pip指向其他安装而不是默认安装。它当前指向/ usr / bin / pip,但我希望它指向/ usr / local / bin / pip。我相信我的路径设置正确,其他所有内容都指向正确的位置。 解决此问题的最佳方法是什么? # echo $PATH /usr/local/jdk/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin:/usr/X11R6/bin:/root/bin # which python /usr/local/bin/python # which easy_install /usr/local/bin/easy_install # which pip /usr/bin/pip
11 python  path  pip 

4
组播UDP不起作用
树莓派上的多播UDP 我还没有把问题的范围缩小到足以知道我的问题是由于debian,raspbian引起的,还是我只是完全缺少某种东西。 我有一个python应用程序,该应用程序使用多播UDP来让网络上的其他设备知道我的应用程序已启动并正在运行,并且可以在特定IP地址使用。 UDP多播组是239.255.250.250,端口是9131。如果我运行tcpdump,我可以看到我尝试发送的数据包实际上是在发送数据,但是我再也看不到网络上其他计算机通过的数据。 还有其他设备使用具有相同多播组和端口的相同“信标”,并且我可以看到那些数据包从其他计算机通过。路由器没有防火墙,在这一点上,我确实有点无法选择。 以下是我知道如何运行的基本诊断。糟糕的udp chksum似乎没有帮助,但是我对此一无所知。 ifconfig的输出 eth0 Link encap:Ethernet HWaddr b8:27:eb:b2:79:12 inet addr:192.168.2.7 Bcast:192.168.2.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:1682 errors:0 dropped:0 overruns:0 frame:0 TX packets:1686 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:119105 (116.3 KiB) TX bytes:169570 (165.5 KiB) 应用程序运行时输出tcpdump tcpdump: listening on eth0, …

2
等待X窗口出现/消失(以理智的方式)
在shell脚本中,我需要等待标题上带有字符串的窗口出现,执行一些操作,然后等待它消失,然后执行其他操作。 直到昨天,我才有了这个简单的代码。这样做的问题是,脚本保持运行状态时,无法将磁盘置于省电状态,并且可能会持续多个小时: while :; do until wmctrl -l | grep -q "$string"; do # until sleep 0.5 done : do action 1 while wmctrl -l | grep -q "$string"; do # while sleep 0.5 done : do action 2 done 自从我确定所提到的代码疯狂地唤醒磁盘以来,我浏览了一些命令行工具的文档,并决定xdotool等待窗口出现,并xprop确定窗口何时消失: while :; do # we use `until' because sometimes …
11 bash  shell  python  window 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.