小编jus*_*tin的帖子

从virtualenv bin内部运行python脚本不起作用

我有一个我希望全球可用的脚本.我用标准的hashbang开始了它:

#! /usr/bin/env python
Run Code Online (Sandbox Code Playgroud)

并将其链接到我的virtualenv的bin目录:

~/environments/project/env/bin/myscript
Run Code Online (Sandbox Code Playgroud)

并将该目录添加到我的路径中.当我运行命令时:

myscript
Run Code Online (Sandbox Code Playgroud)

我的其中一个库出现导入错误.但是,如果我激活虚拟环境并运行脚本,它将按预期工作.

我已经排除了符号链接的问题(我也试过在bin文件夹中移动脚本).我也尝试用python运行脚本

python ~/environments/project/env/bin/myscript
Run Code Online (Sandbox Code Playgroud)

以前我使用的是激活环境然后运行我的脚本的脚本,但我觉得从这个文件夹运行的脚本应该与virtualenv的解释器和site-packages一起运行.任何关于为什么这可能不起作用的想法或某些方法我可以调试这个?

python virtualenv rundeck

28
推荐指数
2
解决办法
7万
查看次数

VIM中是否有块撤消?

在Vim中,有没有办法选择一个文本块并使用undo来只撤消对该文本块的更改?

假设我重写了一个函数,然后在我的文件的其他地方进行一些更改.之后,我意识到我的第一个功能实现确实更好.我想撤消我在该函数中所做的更改,但保留我后续添加的内容.

我不知道这是否可行,但我经常发现自己想要这个功能.

vim undo block

18
推荐指数
1
解决办法
698
查看次数

我应该如何重写我的数据库执行/提交以使其适合单元测试?

我一直在努力开始进行单元测试,同时开发一个小的cli程序.

我的程序基本上解析命令行参数和选项,并决定调用哪个函数.每个函数都对数据库执行一些操作.

所以,例如,我可能有一个创建函数:

def create(self, opts, args):
    #I've left out the error handling.
    strtime = datetime.datetime.now().strftime("%D %H:%M")
    vals = (strtime, opts.message, opts.keywords, False)
    self.execute("insert into mytable values (?, ?, ?, ?)", vals)
    self.commit()
Run Code Online (Sandbox Code Playgroud)

我的测试用例应该调用这个函数,然后执行select sql来检查是否输入了行?这听起来很合理,但也使测试更难维护.你会重写函数来返回一些东西并检查返回值吗?

谢谢

python database unit-testing

6
推荐指数
2
解决办法
397
查看次数

从命令行或pkg中的可执行文件运行时,Py2app构建运行完美,但在双击应用程序时则不行

我有一个程序,我试图用py2app分发.当我从命令行运行程序时,它没有任何问题.如果我进入py2app创建的包并在包内容中找到exec并从那里运行它,它也可以工作.构建过程中输出中没有任何错误.

但是,当我双击dist文件夹中的应用程序时,我收到一条错误,指出MyApplication Error并有一个终止按钮,一个去Mac Python网站.

我在Snow Leopard上使用py2app和Python2.7.我没有使用系统Python,这是我自己安装的发行版.

我怎么能麻烦拍这个呢?

python macos py2app

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

标签 统计

python ×3

block ×1

database ×1

macos ×1

py2app ×1

rundeck ×1

undo ×1

unit-testing ×1

vim ×1

virtualenv ×1