我正在创建一个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
答案 0 :(得分:1)
好的,事实证明这是我的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 can't debug Python modules