【问题标题】:Why do my imports work in pycharm, but not on the command line?为什么我的导入在 pycharm 中有效,但在命令行中无效?
【发布时间】:2020-05-08 20:25:51
【问题描述】:

我有以下文件夹布局:

my_folder/
    my_subfolder/
        __init__.py
        main.py
        import_1.py
        import_2.py

有文件:

 # main.py
 from my_subfolder import import_1

 import_1.call_import_2(3)

和

 # import_1.py
 from my_subfolder import import_2

 def call_import_2(n):
     import_2.print_hello_world_n_times(n)

和

# import_2.py

def print_hello_world_n_times(n):
    for i in range(n):
        print('hello world')

现在问题是,如果我在 pycharm 中运行 main.py,它可以正常工作。但是,如果我从命令行python my_subfolder/main.py 或python main.py(取决于我所在的文件夹)运行它,它就不起作用! git bash 也无法让它工作。我得到了错误:

ModuleNotFoundError no module named 'my_subfolder'

有谁知道是什么导致了 pycharm 和命令行之间的这种差异?

【问题讨论】:

  • 试试from .my_subfolder import import_1
  • @TenaciousB 不起作用ModuleNotFoundError: No module named '__main__.my_package'; '__main__' is not a package

标签: python command-line pycharm


【解决方案1】:
 # main.py
 from . import import_1

 import_1.call_import_2(3)

和

 # import_1.py
 from . import import_2

 def call_import_2(n):
     import_2.print_hello_world_n_times(n)

您已经在 my_subfolder 中,所以它会在其中寻找另一个。

【讨论】:

  • 这对我不起作用ImportError: cannot import name 'second_import' from '__main__'
  • 如果您像模块python -m <module_name> 一样运行脚本,那么您需要一个__main__.py
  • @TenaciousB 我真的不确定你到底是什么意思':),你能帮我把它拼出来吗?
猜你喜欢
  • 1970-01-01
  • 2021-11-13
  • 2014-08-02
  • 1970-01-01
  • 2014-01-30
  • 2014-08-13
  • 2021-09-10
  • 1970-01-01
  • 2020-08-09
相关资源
最近更新 更多