在 cygwin 中安装 python 模块的方法是什么?我是 cygwin 的新手,在 setup.exe 包中找不到 pip 或类似的东西。我环顾四周,找不到明确的方法来做到这一点。有没有人有建议?
有没有人知道可以轻松使用Windows的ac/c ++编译器?我对gcc有一些经验,但我想在Windows机器上开发一些像这样的代码.我见过的许多编译器看起来有点复杂,或者不适用于Windows.
提前致谢.
我在正在进行的一些测试中模拟了数据库。我如何为整个类创建一个设置方法,以便每次运行类中的单个测试时都运行该方法?
我正在尝试做的事情的例子。
from mocks import MockDB
class DBTests(unittest.TestCase):
def setup(self):
self.mock_db = MockDB()
def test_one(self):
#deal with self.mock_db
def test_two(self):
#deal with self.mock_db, as if nothing from test_one has happened
Run Code Online (Sandbox Code Playgroud)
我假设拆卸方法也是可能的,但我找不到可以执行此类操作的文档。
我正在编写ansible playbook,我首先想安装pew,然后过渡到 pew 环境以安装其他一些 python 库。
所以,我的剧本看起来像这样......
tasks:
# task 1
- name: install pew if necessary
command: pip install pew
# task 2
- name: create new pew environment if necessary
command: pew new devpi-server
# task 3
- name: transition to pew environment
command: pew workon devpi-server
# task 4
- name: install devpi-server
command: pip install devpi-server
# task 5
- name: run devpi server
command: devpi-server ## various args
Run Code Online (Sandbox Code Playgroud)
本着保持我的剧本具有幂等性的精神,我希望仅在必要时才执行所有这些任务。
因此,我只想在尚未安装 pew 的情况下安装它,如果它不存在,我只想创建一个新的 …
我正在查看具有以下格式的日志消息
datetime log_message_type message_type server {json_string}
Run Code Online (Sandbox Code Playgroud)
因此每一行用空格分隔,每行总是有相同的字段,最后有一个json字符串,json块内有各种字段.
我想过这么简单
with open('test.log', 'r') as f:
for x in f:
line = x.split()
datetime = line[0]
log_message_type = line[1]
message_type = line[2]
server = line[3]
json_string = line[4]
Run Code Online (Sandbox Code Playgroud)
这会有效,除了我的json字符串中有空格,例如,类似这样的东西.
{ "foo" : "bar" }
Run Code Online (Sandbox Code Playgroud)
所以这样做会将我的json字符串拆分到空格处.有没有什么方法可以使用正则表达式或其他东西在空格上分割,直到我到达该行的"json string"部分,然后保留其余部分?我试过做类似的事情
line = re.compile(".*\s.*\s.*\s.*\s").split(x)
Run Code Online (Sandbox Code Playgroud)
尝试在json字符串部分之前基于4个空格来解析行,但是我恐怕我对python中的正则表达式系统是如何工作的还不够了解.有人能帮我一把吗?
编辑:忘了提,我为此坚持使用python 2.7.
所以,我在我的vim缓冲区中打开了大量文件,而我正在使用git开发一个功能分支.突然间,我意识到我需要回到我的主分支来快速修复.
完成提交后,我打开vim会话并切换回主分支.但是,当我尝试从缓冲区加载我需要的文件时,我现在收到消息
Warning: File "<filename>" has changed since editing started
Run Code Online (Sandbox Code Playgroud)
这对我来说是完整的.缓冲区中的文件来自我的功能分支,现在我已经切换回主分支,可以理解的是一些增量处理.
我的问题是,这种情况如何在专业水平上处理?
考虑到解决方案,我可以关闭所有缓冲区并重新打开文件.但是,我希望有一种"聪明"的方式来做到这一点.有没有办法将当前vim缓冲区中的文件替换为所需分支中的对应文件?有没有办法维护多个缓冲区,每个git分支一个?
最终,我希望能够在git分支之间切换,并且打开vim会话只是"知道"该文件的哪个版本当前应该驻留在缓冲区中.
部分原因是我仍在学习vim缓冲区如何工作,并且刚刚开始广泛使用它们.因此,如果我做出任何不成立的假设,请在适当的地方纠正我.
我使用ansible作为系统编排工具.首先,让我描述一下我最终的目标.
我想创建一个或两个剧本,从网上抓取solr,自行设置,然后根据某些配置启动索引.如果到目前为止听起来有任何疑问,请在这里阻止我.
现在,如果我不需要,我不想抓住solr tarball,所以我现在有一个看起来像这样的任务/游戏.
- stat: path="path to solr home/solr/bin/init script"
register: solr_script
- name: getting solr
when: solr_script.stat.exists == False
shell: mkdir -p "path to download dir"
get_url: url="download url" dest= "path to download dir"
shell: tar zxvf "path to download dir/tgz file" -C "path to solr home"
shell: rm -rf "path to download dir"
- name: start solr
shell: "path to solr home/solr/bin/solr init script" start
sudo: yes
Run Code Online (Sandbox Code Playgroud)
我试图检查solr init脚本是否已经下载,然后再去抓取它.
当我按原样运行此脚本时,我收到错误,
multiple …Run Code Online (Sandbox Code Playgroud) 对于某些背景,我试图使用grpc auth以便为我定义的某些服务提供安全性.
让我们看看我是否可以问这是一种有意义的方式.对于我的python代码,实现服务器端代码非常容易.
class TestServiceServer(service_pb2.TestServiceServer):
def TestHello(self, request, context):
## credential metadata for the incoming request
metadata = context.invocation_metadata()
## authenticate the user using the metadata
Run Code Online (Sandbox Code Playgroud)
因此,正如您所知,我能够非常轻松地从"上下文"中获取元数据.对我来说更难的是在java中做同样的事情.
public class TestImpl extends TestServiceGrpc.TestServiceImplBase {
@Override
public void testHello(TestRequest req, StreamObserver<TestResponse> responseObserver) {
// How do I get access to similar request metadata here?
// from the parameter positions, it looks like it should be
// "responseObserver" but that doesn't seem similar to "context"
}
}
Run Code Online (Sandbox Code Playgroud)
我承认我的问题来自几个方向.
1)我不熟悉Java
2)我大量使用python的"pdb"来调试类,看看我可以使用哪些方法.我不知道/我不熟悉java的类似工具.
3)此时文档似乎相当稀疏.它向您展示了如何在服务器端设置ssl连接,但是我找不到服务器的示例来查看请求元数据,正如我在python中所示. …
我最近开始玩python和perl,并且想知道是否有人对初学者/中级项目有任何建议,以便更好地学习脚本语言.除了学习这两种语言之外,我真的没有任何目标,所以我很乐意听到任何建议.
我正在尝试使用本教程连接到solr服务器。至此,我确信我的 solr 设置正确。我能跑
> solr start -p 8983
Run Code Online (Sandbox Code Playgroud)
它似乎开始了一些事情。
果然
> solr status
Solr process 31421 running on port 8983
Run Code Online (Sandbox Code Playgroud)
现在,在我的 python 代码中,我尝试了我认为应该是基本连接脚本的内容。
import solr
host = "http://localhost:8983/solr"
# also tried
# host = "http://localhost:8983"
# also tried
# host = "http://127.0.0.1:8983/solr"
# also tried
# host = "http://127.0.0.1:8983"
connection = solr.SolrConnection(host)
try:
connection.add(
id= 1,
title= "Lucene in Action",
author= ['Zack', 'Hank Hill']
)
except Exception as e:
import pdb
pdb.set_trace()
connection.commit()
Run Code Online (Sandbox Code Playgroud)
我的代码永远不会到达connection.commit(),相反,它会到达异常中的调试点。查看异常 e
HTTP …Run Code Online (Sandbox Code Playgroud) python ×7
ansible ×2
conditional ×2
installation ×2
solr ×2
branch ×1
buffer ×1
c ×1
c++ ×1
connection ×1
cygwin ×1
git ×1
grpc ×1
if-statement ×1
java ×1
json ×1
localhost ×1
metadata ×1
module ×1
nosetests ×1
perl ×1
pip ×1
project ×1
regex ×1
request ×1
server ×1
task ×1
testing ×1
version ×1
vim ×1
virtualenv ×1