我正在创建一个Python程序包,我希望它将同时通过命令行和其他脚本进行调用。这是我的文件结构的简化版本:
GREProject/
__init__.py
__main__.py
Parsing.py
Parseing.py包含一个方法parse(),它带有两个参数,一个输入文件和一个输出文件。我试图找出“ __main__.py”的正确代码,以便从命令行或终端调用以下代码时,参数将传递给“ parse()”:
Python GREProject -i input.file -o output.file
我已经尝试了很多方法,但是都遇到了失败,我相信我需要解释器的“ -m”标志,但是我不知道的更多。带有标志的示例:
Python -m GREProject -i input.file -o output.file
运行更高版本的命令时,出现以下错误:
Import by filename is not supported.
大概从这行开始:
from . import Parsing
好的,原来这是我的IDE PyCharm的问题。不知道为什么我收到此错误,但是我已对其进行了设置:
Import by filename is not supported.
作为记录,这里是我在Pycharm项目中设置的选项
Script:
GREProject
Script parameters:
-i .\GREProject\pr2.nyc1 -o .\GREProject\Test.pkl
Enviroment variables:
PYTHONUNBUFFERED=1
Python interpreter:
Python 2.7.11 (c:\Python27\python.exe)
Interpreter options:
-m
Working directory:
C:\Users\probert.dan\PycharmProjects
以下是对这些选项的说明:
供参考的是我的“ __main__.py文件”的内容:
from . import Parsing
import argparse
parser = argparse.ArgumentParser(description='Parse flags.')
parser.add_argument('-i', help='Import file.')
parser.add_argument('-o', help='(Optional) Output file.')
arguments = parser.parse_args()
Parsing.parse(arguments.i, arguments.o)
同样重要的是要注意,不可能像这样在PyCharm中进行调试。这是调试的解决方案:Intellij / Pycharm无法调试Python模块
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句