我有一个名为 Rackfocus 的 CLI 工具。我已经发布到 PyPI,并且我有理由确定它之前工作得很好。当我尝试在 Mac 上使用当前版本的 Python 运行它时,出现错误:
No module named rackfocus.__main__; 'rackfocus' is a package
and cannot be directly executed
Run Code Online (Sandbox Code Playgroud)
我想要的只是一个带有一个入口点的包,用户可以使用 pip 下载和使用该包。
根据教程,我在setup.py中有这个:
packages=['rackfocus']
entry_points = {
'console_scripts': [
'rackfocus=rackfocus.run:main'
]
}
Run Code Online (Sandbox Code Playgroud)
我有一个rackfocus.run:main函数、一个init .py 等等。怎么了?
您可以在本地重现此内容:
pip3 install -e .python3 -m rackfocus我正在尝试对为Mac OS编写的命令行工具进行单元测试.
当我第一次创建项目时,XCode不会在项目导航器中生成测试组.当我尝试添加新的测试目标时,它不会让我选择将我的目标指定为"要测试的目标".
我的问题是:甚至可以将XCTest用于命令行工具项目吗?或者,由于我可以从命令行运行它,这只是被认为是微不足道的?我能理解这个推理,但我确实想测试内部功能.
我使用Xcode OS X命令行工具项目模板创建了一个控制台应用程序.
当一切都说完了,我的机器上放置了实际的"Release"二进制文件在哪里?在搜索了SO之后,我发现了我可以在哪里找到"Debug"二进制文件:
〜/资源库/开发/ Xcode中/ DerivedData /项目/生成/产品/调试
我在哪里可以找到"发布"二进制文件?或者是否需要在Xcode中输出这些二进制文件以便我可以分发控制台应用程序?
我正在使用名为TMX的命令行工具(https://github.com/tonybeltramelli/TMXResolutionTool)我想在某个文件夹中的每个.png文件上执行此命令.我怎样才能做到这一点?
这是它的使用方式:
TMXResolutionTool <tmx path> <resize ratio>
TMXResolutionTool <image path> <resize ratio>
TMXResolutionTool <image path> <new width> <new height>
Run Code Online (Sandbox Code Playgroud)
干杯.
我在我的macOS命令行工具项目中添加了一些JSON文件,但我似乎无法通常的方式找到它们.
if let path = Bundle.main.path(forResource: "Data", ofType: "json")
{
if let contents = try? String(contentsOfFile: path)
{
print (contents)
}
else { print("Could not load contents of file") }
}
else { print("Could not find path") }
Run Code Online (Sandbox Code Playgroud)
在基于视图的应用程序中使用时,此代码可以正常工作,但始终在命令行工具中打印"无法找到路径".
有谁知道我做错了什么?
PS:完全清楚我应该使用guard这个语句,但代码不在函数中,只是在main.swift中讨论,直到我弄明白这一点.
我想在 Windows 上的 raku 中执行以下操作
raku -n -e ".say if /mydatabegin/;" *.file
Run Code Online (Sandbox Code Playgroud)
无法打开文件 C:\..\*.file: 参数无效
glob 不被解释为 glob。我认为这是因为 Windows 要求你的程序自己进行通配?那么是否有一个预处理指令或函数,甚至是我可能错过或重定向的开关,或者允许扩展 glob 同时保持 -n (或 -p)和 -e 开关的简单性的东西?
显然,我可以通过删除 -n (或 -p)将其更改为完整程序,只需使用 -e 指定 main 并循环 glob 结果。但我真的很喜欢-n。
附言。我实际上只是在学习 raku,并且很惊讶这并没有开箱即用。因此,具有简单语法的完整程序的示例也可以工作。但我真的很喜欢-n..
编辑:回复@chenyf
raku -e ".say for $*ARGFILES" *.file
Run Code Online (Sandbox Code Playgroud)
同样的错误。有关的:
raku -e ".say for $*ARGFILES.lines" *.file
Run Code Online (Sandbox Code Playgroud)
同样的错误。
raku -e "use IO::Glob; .say for glob('*.file')"
Run Code Online (Sandbox Code Playgroud)
按预期工作!扩展:
raku -e "use IO::Glob; .say for glob('*.file').lines"
Run Code Online (Sandbox Code Playgroud)
对于“IO::Glob”类型的调用者没有这样的方法“lines”
越来越接近——也许对此进行扩展是一个足够好的解决方法。但回到一线荣耀的尝试:
raku -e "use IO::Glob; .say for glob($*ARGFILES)" test.file
Run Code Online (Sandbox Code Playgroud)
无法解析调用者 …
好的,所以我知道你可以使用Objective-C制作一个NSTask来运行命令行工具:
NSTask *task;
task = [[NSTask alloc] init];
[task setLaunchPath: @"/usr/bin/gdb"];
[task launch];
Run Code Online (Sandbox Code Playgroud)
我只是想知道是否有办法与交互式命令行工具进行通信gdb.这将涉及使基于用户交互的命令输入(如run,kill或quit用gdb),然后在此基础上输出该信息反应.
当我尝试在新下载的Xcode 4.4安装中安装命令行工具时,有没有人知道我可能需要更改(特定文件的权限;清除Keychain Access项目)以解决问题?

无法为特定方案设置单元测试.这是我正在尝试的:
在Xcode 4.5中,我创建了一个简单的OSX "命令行工具"应用程序项目(Foundation).
请注意,Xcode 不提供自动将单元测试添加到"命令行工具"项目的选项 - 所以请不要建议勾选方框.它不存在: - /
在我的项目中,我创建了一个我想测试的简单示例类; 例如"形状".
我跟着苹果的指示Xcode的单元测试指南用于在项目设置的单元测试:
我在我的项目中添加了一个单元测试目标,并且
我编辑了"测试"方案以在新目标中运行测试.
在测试项目的实现(.m)文件中,我Shape.h在setUp()方法中添加了一个import 和code 来实例化一个形状并将其分配给一个实例变量.
那时,我决定看看是否会构建一些东西,以及默认测试是否仍会运行.但是,当我从菜单中选择Product ... Test时,构建失败并出现以下错误:
Undefined symbols for architecture x86_64:
"_OBJC_CLASS_$_Shape", referenced from:
objc-class-ref in ExampleTests.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Run Code Online (Sandbox Code Playgroud)
解释此错误不是问题.我知道单元测试目标没有链接到包含Shape实现的二进制文件.但是,我还没有(还)了解Xcode单元测试和目标配置.所以:
为了使测试目标链接到命令行工具的结果输出,我需要做什么?我可以链接到单元测试目标的命令行可执行文件吗?Apple的文档看起来特定于常规OSX应用程序(*.app)和iOS应用程序,而这两者都不是.
我有业务逻辑类,我想在命令行工具设置(开始)中开发,所以我想了解我需要做什么才能在"命令行工具"中运行单元测试目标"项目类型. 谢谢!
(PS请注意,我不感兴趣,我的运行单元测试从命令行-堆栈溢出已经建议对如何做到这一点"相似"的问题-而是运行单元测试上一个"命令行工具"类型的项目,而且还来自Xcode内部.)
我正在尝试按照CSS-Tricks的说明设置node-sass .Node和npm安装正确,node-sass安装也正常.node-sass --output-style compressed -o dist/css src/scss但是,当我去跑步时,我收到一条错误消息
'node-sass'不被识别为内部或外部命令,可操作程序或批处理文件.
我已经做了很多谷歌搜索并直接搜索了Stack Overflow.我的问题不是"节点"没有被识别为命令.我知道节点工作,我可以运行node -v,并npm -v和节点青菜运行后,安装成功npm install --save-dev node-sass(有一个在node_modules一个文件夹),并没有错误出现在命令行.
其他信息:我正在运行Windows 10,并且在尝试使用node-sass之前只是干净地安装了node和npm.
编辑:由于@Bhavik的建议,我用-g卸载并重新安装,它现在正在工作
xcode ×4
macos ×2
bundle ×1
cocoa ×1
command-line ×1
glob ×1
installation ×1
node-sass ×1
node.js ×1
npm ×1
objective-c ×1
pip ×1
pypi ×1
python ×1
raku ×1
release ×1
setuptools ×1
swift ×1
unit-testing ×1
unix ×1
xcode4.4 ×1
xcode4.5 ×1
xctest ×1