我有一个我希望全球可用的脚本.我用标准的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一起运行.任何关于为什么这可能不起作用的想法或某些方法我可以调试这个?
在Vim中,有没有办法选择一个文本块并使用undo来只撤消对该文本块的更改?
假设我重写了一个函数,然后在我的文件的其他地方进行一些更改.之后,我意识到我的第一个功能实现确实更好.我想撤消我在该函数中所做的更改,但保留我后续添加的内容.
我不知道这是否可行,但我经常发现自己想要这个功能.
我一直在努力开始进行单元测试,同时开发一个小的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来检查是否输入了行?这听起来很合理,但也使测试更难维护.你会重写函数来返回一些东西并检查返回值吗?
谢谢
我有一个程序,我试图用py2app分发.当我从命令行运行程序时,它没有任何问题.如果我进入py2app创建的包并在包内容中找到exec并从那里运行它,它也可以工作.构建过程中输出中没有任何错误.
但是,当我双击dist文件夹中的应用程序时,我收到一条错误,指出MyApplication Error并有一个终止按钮,一个去Mac Python网站.
我在Snow Leopard上使用py2app和Python2.7.我没有使用系统Python,这是我自己安装的发行版.
我怎么能麻烦拍这个呢?
python ×3
block ×1
database ×1
macos ×1
py2app ×1
rundeck ×1
undo ×1
unit-testing ×1
vim ×1
virtualenv ×1