Python 2.7 从命令行/PyCharm调用Python包
我正在创建一个Python包,我预计它将被命令行和其他脚本调用。以下是我的文件结构的简化版本:Python 2.7 从命令行/PyCharm调用Python包,python-2.7,Python 2.7,我正在创建一个Python包,我预计它将被命令行和其他脚本调用。以下是我的文件结构的简化版本: GREProject/ __init__.py __main__.py Parsing.py py包含一个方法parse(),它接受两个参数,一个输入文件和一个输出文件。我正在尝试找出“\uuuu main\uuuuuuuuuuy.py”的正确代码,以便在从命令行或终端调用以下内容时,参数将传递给“parse()”: 我尝试过很多方法,但都失败了,我相信我需要翻译的“-m”标
GREProject/
__init__.py
__main__.py
Parsing.py
py包含一个方法parse(),它接受两个参数,一个输入文件和一个输出文件。我正在尝试找出“\uuuu main\uuuuuuuuuuy.py”的正确代码,以便在从命令行或终端调用以下内容时,参数将传递给“parse()”:
我尝试过很多方法,但都失败了,我相信我需要翻译的“-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
以下是选项的说明:
- 脚本:这是要运行的脚本,默认情况下,PyCharm将只插入对.py文件的绝对引用,没有任何东西阻止您手动键入相对引用,在这种情况下,它是GREProjects文件夹
- 脚本参数:这些参数被传递到脚本本身,在本例中,我告诉脚本输入文件为“\GREProject\pr2.nyc1”,这意味着,请查看当前工作目录下“GREProject”目录中的文件“pr2.nyc1”
- 环境变量:这是由PyCharm设置的,保持不变
- Python解释器:我的活动解释器
- 解释器选项:这里的选项告诉python我们正在调用一个模块,然后python知道如何访问“\uuuu main\uuuuu.py”文件
- 工作目录:运行脚本的目录,我选择了“GREProject”上面的目录
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
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)