我有一个名为fwp.py
的结构脚本,我运行它时没有通过fab调用它,方法是使用:
if __name__ == '__main__':
# imports for standalone mode only
import sys
import fabric.main
fabric.main.main(fabfile_locations=[__file__])
然后必须通过调用fwp.py
来调用脚本。我想将其重命名为fwp
,以便能够将其称为fwp
。但这样做会导致
有没有办法让Python/Fabric导入这个文件,尽管没有“.py”扩展名?在
重申并澄清:
我没有使用“fab”实用程序(例如,fab task task:parameter
);只是将我的脚本称为fwp.py task task:parameter
,并希望能够将其称为fwp task task:parameter
。在
更新
它不是this question的副本。问题不是“如何运行独立的结构脚本?”,但“如何在没有.py扩展名的脚本时这样做”。在
编辑:原始答案已更正
fabric.main.main()
函数自动将.py
添加到所提供的fabfile位置的末尾(请参见https://github.com/fabric/fabric/blob/master/fabric/main.py#L93)。不幸的是,该函数还使用Python的导入机制来加载文件,因此它必须看起来像模块或包。如果不重新实现fabric.main
模块的大部分内容,我认为这是不可能的。你可以试着把fabric.main.find_fabfiles
和fabric.main.load_fabfiles
都打补丁让它工作。在原始答案(错误)
我可以让这个工作在一个新安装的织物包不变。下面的代码将使用文件名
fwp
和可执行权限在版本1.10.1,Python2.7上执行。我就试着升级布料。在输出:
^{pr2}$相关问题 更多 >
编程相关推荐