小编Kit*_*Kit的帖子

matplotlib中的TeX渲染,花括号和字符串格式化语法

我有以下几行在我的matplotlib情节中渲染TeX注释:

import numpy as np
import matplotlib.pyplot as plt
from matplotlib import rc

rc('text', usetex=True)
rc('font', family='serif')

voltage = 220

notes = r"\noindent $V_2 = {0:.5} V$".format(voltage)

plt.annotate(notes, xy=(5,5), xytext=(7,7))
plt.show()
Run Code Online (Sandbox Code Playgroud)

它工作得很好,但我的第一个挑剔是它V是一个度量单位,因此它应该是文本模式,而不是(斜体)数学模式.我尝试以下字符串:

notes = r"\noindent $V_2 = {0:.5} \text{V}$".format(voltage)
Run Code Online (Sandbox Code Playgroud)

这引发了一个错误,因为{花括号}是Python的字符串格式化语法的所有权.在上面这行,只是{0:.5}正确的; {V}被视为陌生人.例如:

s1 = "Hello"
s2 = "World!"
print "Some string {0} {1}".format(s1, s2)
Run Code Online (Sandbox Code Playgroud)

应该给Some string Hello World!.

我如何确保TeX的{花括号}不会干扰Python的{花括号}

python string matplotlib tex

15
推荐指数
2
解决办法
5274
查看次数

在Mac OS X上使用+ clientserver功能编译Vim 7.3

如何使用clientserverMac OS X上的功能编译Vim ?我有vim-7.3.tar.bz2源码

我知道MacVim内置了,但它只在GUI运行时才有效.我想使用CLI版本,因为我的工作使用CLI更容易(例如,我可以轻松切换到终端).

我使用以下./configure选项编译了Vim 7.3

./configure --enable-rubyinterp --enable-pythoninterp --with-features=huge
Run Code Online (Sandbox Code Playgroud)

在Unix和Linux上看过这个问题,但它只关注Ubuntu解决方案.此外,由于我启用了huge功能集,我应该期待+clientserver,根据vimdoc:

因此,如果某个功能标有"N",则它包含在Vim的普通版,大版和大版中.

更新:

服务器功能仅适用于GUI MacVim.要重现这个:

$ Applications/MacVim.app/Contents/MacOS/Vim --servername VIM
Run Code Online (Sandbox Code Playgroud)

在另一个控制台:

$ vim --serverlist # does not output anything
Run Code Online (Sandbox Code Playgroud)

如果我要启动GUI MacVim,

$ vim --serverlist
VIM1
Run Code Online (Sandbox Code Playgroud)

但我的要求是在CLI Vim中工作.

macos vim client-server compilation

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

如何使用Flask测试客户端模拟AJAX请求?

测试Flask应用程序完成:

# main.py
from flask import Flask, request

app = flask.Flask(__name__)

@app.route('/')
def index():
    s = 'Hello world!', 'AJAX Request: {0}'.format(request.is_xhr)
    print s
    return s

if __name__ == '__main__':
    app.run()
Run Code Online (Sandbox Code Playgroud)

那么这是我的测试脚本:

# test_script.py
import main
import unittest

class Case(unittest.TestCase):
    def test_index():
        tester = app.test_client()
        rv = tester.get('/')
        assert 'Hello world!' in rv.data

if __name__ == '__main__':
    unittest.main()
Run Code Online (Sandbox Code Playgroud)

在测试输出中,我会得到:

Hello world! AJAX Request: False
Run Code Online (Sandbox Code Playgroud)

如何使用AJAX请求测试我的应用程序?

python ajax unit-testing flask

13
推荐指数
1
解决办法
3735
查看次数

使用Apple提供的Python并行安装Python 2.7.1

我刚刚从Python.org下载了Python 2.7.1 DMG .我已经看到了获得ActivePython的建议,但我更喜欢Python.org中的建议.

  1. 如果我只是mpkg在DMG中运行安装程序,接受所有默认设置,它是否会与Apple提供的Python和平共处?
  2. 如果我输入python终端,我会得到哪一个?
  3. 在终端中,如何指定运行Apple提供的Python?我自己安装的Python怎么样?
  4. PATH在安装不同的Python版本时,这些讨论是什么?我知道Python安装程序会自动设置它.但我还是想偷看.我知道如何在Windows(环境变量)中执行此操作.对于Mac OS X,我该如何修补PATH

我不妨先试试这些,但我是Mac的新手.Python是一个非常复杂的安装,将文件写入不同的文件夹并配置操作系统设置,如PATH.TrashMe或AppCleaner在卸载Python时可能不是很有效,如果我想要回到干净的平台.因此,我希望从上面的问题中获得明确的见解.

python macos osx-snow-leopard

12
推荐指数
1
解决办法
2万
查看次数

Mac OS X和TeX Live上的matplotlib中的TeX

我有以下Hello World代码在我的Mac上尝试使用matplotlib进行TeX渲染.

import matplotlib.pyplot as plt
from matplotlib import rc

rc('text', usetex=True)
rc('font', family='serif')

plt.text(2,2,r"Hello World!")
plt.show()
Run Code Online (Sandbox Code Playgroud)

使用该代码,我会收到以下错误:

sh: latex: command not found
Exception in Tkinter callback
<... a long Traceback here ...>
RuntimeError: LaTeX was not able to process the following string:
'lp'
Here is the full report generated by LaTeX:
Run Code Online (Sandbox Code Playgroud)

在最后一行之后我没有看到任何完整的报告.无论如何,我认为这是一个路径问题.关于如何修复它的一些指示?我有TeX Live 2010.

我尝试添加/Library/TeX/Root/bin/universal-darwin到项目属性的全局Python路径,但我仍然得到相同的错误. 在此输入图像描述

python macos matplotlib tex

12
推荐指数
1
解决办法
8986
查看次数

使用Python和pyserial访问USB串行端口

如何使用pyserial访问USB端口?我见过一个例子:

import serial

ser = serial.Serial('/dev/ttyUSB0')
Run Code Online (Sandbox Code Playgroud)

我曾经在Windows上从MATLAB访问串口并使用适当的语法,/dev/ttyUSB0将被替换为COM1任何其他COM端口.

我在Mac上,我尝试使用文档上的串口扫描程序pyserial无济于事.我想我应该这样写:

import serial

name = ? # Names of serial ports on Mac OS X
ser = serial.Serial(name)
Run Code Online (Sandbox Code Playgroud)

我如何知道nameMac上应该有什么?

编辑:在回答下面的答案时,我想了解如何访问USB转RS232转换器以及纯USB端口.

python macos usb serial-port pyserial

12
推荐指数
1
解决办法
3万
查看次数

将tzinfo插入datetime

我有以下tzinfo具体的子类定义:

from datetime import datetime, timedelta, tzinfo

class ManilaTime(tzinfo):
  def utcoffset(self, dt):
    return timedelta(hours=8)

  def tzname(self, dt):
    return "Manila"
Run Code Online (Sandbox Code Playgroud)

我获取了一个日期字符串,并希望将其转换为时区感知datetime对象.我更喜欢使用以下方法:

def transform_date(date_string, tzinfo):
  fmt = '%Y-%m-%d'
  # Where do I insert tzinfo?
  date = datetime.strptime(date_string, fmt)
  return date
Run Code Online (Sandbox Code Playgroud)

有什么方法可以通过以下方式插入tzinfodatetime对象中?

manila = ManilaTime()
date = transform_date('2001-01-01', manila)
Run Code Online (Sandbox Code Playgroud)

python timezone datetime tzinfo

11
推荐指数
1
解决办法
8324
查看次数

当我按<tab>时,为什么SuperTab输出自我?

安装程序

在我的.vimrc我有以下几行:

" .vimrc
let g:virtualenv_directory="/Users/Kit/Development/virtualenv"
Run Code Online (Sandbox Code Playgroud)

然后在~/.vim/ftplugin/python/virtualenv.vim我有这些:

py << EOF
import os.path
import sys
import vim
if 'VIRTUAL_ENV' in os.environ:
    project_base_dir = os.environ['VIRTUAL_ENV']
    sys.path.insert(0, project_base_dir)
    activate_this = os.path.join(project_base_dir, 'bin/activate_this.py')
    execfile(activate_this, dict(__file__=activate_this))
    print "virtualenv in os.environ!"
EOF
VirtualEnvActivate my-virtualenv-python-2.7
Run Code Online (Sandbox Code Playgroud)

~/.vim/ftplugin/python/virtualenv.vim我有这些SuperTab设置:

setlocal omnifunc=pythoncomplete#Complete
setlocal completeopt=menuone,longest,preview
let g:SuperTabDefaultCompletionType="<c-x><c-]>"
Run Code Online (Sandbox Code Playgroud)

在我的工作目录中,我一直在工作,我执行了以下bash命令TAGS为我的所有.py文件生成一个文件

find . -name '*.py' -type f -print0 | xargs -0 etags -l python
Run Code Online (Sandbox Code Playgroud)

问题

例如,我有一个在main.py其中有一个对象app,以便以下脚本正常工作:

import main
new_app = main.app() …
Run Code Online (Sandbox Code Playgroud)

tags vim autocomplete code-completion supertab

11
推荐指数
1
解决办法
2210
查看次数

OS X上的Matplotlib.pyplot与Python.org的64位Python

我刚安装numpymatplotlib我的OS X 10.6.6.我有来自Python.org的Python 2.7.当我这样做时import matplotlib.pyplot,我收到以下错误:

ImportError: dlopen(/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/matplotlib/_path.so, 2): no suitable image found.  Did find:
        /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/matplotlib/_path.so: no matching architecture in universal wrapper
Run Code Online (Sandbox Code Playgroud)

我错过了什么吗?我该如何解决?

更新1(2011年3月25日):
matplotlib交互式绘图系统使用Tcl/Tk/Tkinter提供GUI.我安装了64位Python,但我错过了Python.org下载页面link1,link2中的以下警告: http://www.python.org/download/releases/2.7.1/
http://www.python.org/download/mac/tcltk/
因此,我删除了64位版本并安装了32位版本.我建议保持这个问题,以防万一64位Tcl/Tk/Tkinter出现在Python 2.7中.

python macos matplotlib

9
推荐指数
1
解决办法
6840
查看次数

给定一个列表和一个位掩码,如何返回True为真的索引值?

我从以下列表s和位掩码开始b:

s = ['baa', 'baa', 'black', 'sheep', 'have', 'you', 'any', 'wool']
b = [1, 0, 0, 0, 1, 1, 1, 0] # or any iterable with boolean values
Run Code Online (Sandbox Code Playgroud)

如何编写一些函数apply_bitmask(s, b)以便返回

['baa', 'have', 'you', 'any']
Run Code Online (Sandbox Code Playgroud)

python tuples list bitmask sequence

8
推荐指数
3
解决办法
7001
查看次数