我正在使用PyYaml从我自己的python对象创建Yaml文档.例如我的对象:
class MyObj(object):
name = "boby"
age = 34
Run Code Online (Sandbox Code Playgroud)
变为:
boby:
age: 34
Run Code Online (Sandbox Code Playgroud)
到现在为止还挺好.
但我还没有找到一种方法以编程方式向生成的yaml添加注释,因此它看起来像:
boby: # this is the name
age: 34 # in years
Run Code Online (Sandbox Code Playgroud)
看看PyYaml文档以及代码,我发现没办法这样做.
有什么建议?
在Mac OS上使用python,我想打开一个文件进行编写并将一些shell命令放入其中.后来要在终端运行.
with open("my_script.sh", "w") as fd:
fd.write("#!/bin/sh\n")
fd.write("echo $PATH\n")
Run Code Online (Sandbox Code Playgroud)
这将创建文件,但我无法想象如何设置执行位,所以当我在终端中运行它时我不会得到:
sh: my_script.sh: Permission denied
Run Code Online (Sandbox Code Playgroud) 我编译了一个名为MyBundle.bundle的Mac OSX软件包,它用作另一个应用程序的插件.我希望捆绑包有一个独特的图标,所以我设置Info.plist文件说:
<key>CFBundleIconFile</key>
<string>MyIcon.icns</string>
Run Code Online (Sandbox Code Playgroud)
并将文件MyIcon.icns放在bundle的MyBundle.bundle/Contents/Resources文件夹中.
这不起作用,查找程序显示捆绑包的通用图标并忽略指定的MyIcon.icns文件.如果我将软件包的扩展名从.bundle更改为.app,则图标会立即显示 - 所以我知道Info.plist是正确的.
我找到了一个可以模拟用户在包上复制和粘贴图标的工作:
我将图标作为"icns"类型的资源和id -16455添加到bundle的.rsrc文件中.
我打电话
/Developer/Tools/SetFile -a BC MyBundle.bundle
Run Code Online (Sandbox Code Playgroud)
这有效,但真的很蹩脚.从Mac OS 10.8开始,SetFile需要永远执行.
我的问题:是否有强迫Finder在没有这些黑客的情况下显示捆绑的图标?
BTW:关于同一主题有一个问题:设置非app mac os x bundle的图标 ; 但唯一的答案是指示如何创建一个图标,并没有帮助解决问题.
我正在使用boost :: program_options来实现具有以下语法的命令行实用程序:
myutil command [--in file_name] [---out file_name]
Run Code Online (Sandbox Code Playgroud)
其中'command'是必需的,并且是以下之一:
read | write | find | version | help
Run Code Online (Sandbox Code Playgroud)
问题是"命令"不应该要求--或者-我还没有找到如何使用boost :: program_options来做到这一点.
我有一些旧代码使用旧的FSFindFolder例程查找特定文件夹.现在我的任务是使代码现代化.起初使用NSFileManager的URLForDirectory似乎是正确的选择.不幸的是,我发现了很多,你可以找到使用文件夹的FSFindFolder不再受支持URLForDirectory.
您可以使用FSFindFolder找到的文件夹列表很长,而且大多数文件夹对我来说都没用.
以下是我需要转换的FSFindFolder常量的部分列表及其URLForDirectory等价物:
FSFindFolder URLForDirectory
============================== ===============
kDesktopFolderType NSDesktopDirectory
kCachedDataFolderType NSCachesDirectory
kApplicationSupportFolderType NSApplicationSupportDirectory
kTemporaryFolderType located by calling NSTemporaryDirectory()
kCurrentUserFolderType located by calling NSHomeDirectory()
kSystemFolderType Not Available
kPreferencesFolderType Not Available
kTrashFolderType Not Available
kAudioComponentsFolderType Not Available
kVolumeRootFolderType Not Available
kSharedUserDataFolderTypeNo Not Available
Run Code Online (Sandbox Code Playgroud)
我的问题:有没有一种标准方法可以在不使用FSFindFolder的情况下找到标记为"不可用"的每个文件夹的路径?
以下异步生成器代码直接取自 PEP525:
async def gen():
await asyncio.sleep(0.1)
v = yield 42
print(v)
await asyncio.sleep(0.2)
Run Code Online (Sandbox Code Playgroud)
但是,当我调用(使用 python3.6)时:
print(asyncio.iscoroutinefunction(gen), asyncio.iscoroutine(gen))
Run Code Online (Sandbox Code Playgroud)
我得到:
False, False
Run Code Online (Sandbox Code Playgroud)
为什么异步生成器无法识别为协程函数?
还有其他方法可以将其识别为协程函数吗?
我正在尝试在Mac OS 10.7.5上构建svn客户端.我的目标是构建完全静态的svn客户端,因此它不依赖于任何安装的dylib.我们的想法是可以将svn客户端复制到密钥上的磁盘上,或者下载它,无需安装或配置任何东西即可运行.
我下载了svn源代码(subversion-1.7.8)和所有必需的依赖项(apr,par-util,neon,sqlite-amalgamation),并说明了configure-make-make安装周期.
Svn的configure选项具有--enable-all-static标志,用于创建不依赖于外部dylib的svn客户端.但是,构建始终失败并显示以下消息:
Warning! dlname not found in /Volumes/mydisk/build/svn/libexec/mod_dav_svn.la.
Assuming installing a .so rather than a libtool archive.
chmod 755 /Volumes/mydisk/build/svn/libexec/mod_dav_svn.so
chmod: /Volumes/mydisk/wsvn/build/svn/libexec/mod_dav_svn.so: No such file or directory
apxs:Error: Command failed with rc=65536
.
make: *** [install-mods-shared] Error 1
Run Code Online (Sandbox Code Playgroud)
似乎构建正在寻找mod_dav_svn.so,即使它不需要并且一切都编译为静态.
有趣的是,构建的svn客户端实际运行!但是,我想正确完成构建和安装.
我的问题是:
谢谢
我正在使用 SQLAlchemy 并尝试将事件添加到我的代码中。虽然一切正常,但不会触发事件。这是我的简化代码:
from sqlalchemy import Column, String
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from sqlalchemy import event
alchemy_base = declarative_base()
class Person(alchemy_base):
__tablename__ = 'my_table'
name = Column(String, primary_key=True)
@event.listens_for(Person, "before_insert")
def before_insert(mapper, connection, instance):
print("before_insert", mapper, connection, instance)
engine = create_engine('sqlite:///:memory:', echo=True)
alchemy_base.metadata.create_all(engine)
session_maker = sessionmaker(bind=engine)
session = session_maker()
insert_dicts = [{'name': "ami"}, {'name': "beni"}]
engine.execute(Person.__table__.insert(), insert_dicts)
session.commit()
Run Code Online (Sandbox Code Playgroud)
before_insert尽管值已输入到 DB 中,但并未调用该函数。
我在 Mac OS 上使用 python 2.7.10,SQLAlchemy 1.0.10。
我正在使用 win32com.client 在 Windows 上创建快捷方式:
from win32com.client import Dispatch
shell = Dispatch("WScript.Shell")
shortcut = shell.CreateShortCut(shortcut_path) # shortcut_path defined elsewhere
shortcut.Targetpath = target_path
shortcut.WorkingDirectory = working_directory # working_directory defined elsewhere
shortcut.save()
Run Code Online (Sandbox Code Playgroud)
我希望使用“以管理员身份运行”复选框创建快捷方式:
是否可以使用 python 和 win32com 来做到这一点?
我在 Windows 7 64 位上使用 python 3.5。
我正在使用 OpenGL 在 Mac OS 中绘图。当我的代码在 Retina 显示器上运行时,除文本绘制外,一切正常。在视网膜显示下,文本是应有的两倍大。发生这种情况是因为字体大小以磅为单位,每个点在 Retina 下为 2 个像素,但 OpenGL 是基于像素的。
下面是标准显示下正确的文字绘制:

这是 Retina 显示下错误的文本绘制:

这是我通常绘制字符串的方式。由于 OpenGL 没有文本绘制功能,为了绘制文本,我执行以下操作:
获取字体:
NSFontManager fontManager = [NSFontManager sharedFontManager];
NSString font_name = [NSString stringWithCString: "Helvetica" encoding: NSMacOSRomanStringEncoding];
font = [fontManager fontWithFamily: font_name traits:fontStyle weight:5 size:9];
attribs = [[NSMutableDictionary dictionaryWithCapacity: 3] 保留];
[属性 setObject:font forKey:NSFontAttributeName];
创建并测量字符串:
NSString* aString = [NSString stringWithCString: "blah blah" encoding: NSMacOSRomanStringEncoding];
NSSize frameSize = [aString sizeWithAttributes: m_attribs];
分配 NSImage 的大小:
NSImage* image = [[NSImage alloc] initWithSize:frameSize];
[图像锁定焦点];
将字符串绘制到图像中:
[aString …
macos ×5
python ×5
boost ×1
bundle ×1
c++ ×1
cocoa ×1
configure ×1
file-io ×1
finder ×1
fonts ×1
icons ×1
macos-carbon ×1
mod-dav-svn ×1
nsstring ×1
opengl ×1
python-2.7 ×1
python-3.6 ×1
python-3.x ×1
pyyaml ×1
shortcut ×1
sqlalchemy ×1
svn ×1
win32com ×1
windows ×1
yaml ×1