2016-10-07 8 views
2

私は、pelicanの周り私はgithubのpipインストールされたパッケージの__init__.pyには、なぜ__name__ == "__main__"の正規表現はありませんか?

$ gitのクローン編集可能なパッケージ

として私はvirtualenvにインストール https://github.com/getpelican/pelican.git

  • からクローニング

    • を持つ静的ブログ・ジェネレータを、プレイしています

      $ pip install -r dev_requirements.txt
      $ pip install -e。

    今私は、私は非常にそれを行う方法を見つけ出すことはできませんpycharm(以降emacsの中)

    を使用して、それをそれを実行したい、とデバッグう!

    私はpelicanをコマンドラインから実行できます。

    $ pelican /blog/content -o /blog/public -s /blog/pelicanconf.py --relative_urls 
    

    しかし、私はpycharmからそれを実行する方法を見つけ出すことはできません....です

    は、私が__init__.py:main()にブレークポイントを設定することができますが、pycharmの実行時に__init__.py何も起こりません。 おそらくpycharmは__init__を実行し、さまざまなモジュールをロードして終了します。私として__init__.py

    の下部に

    if __name__ == "__main__": 
        main() 
    

    そして私は__init__.pyスクリプトとPythonが(メインでデバッガに入り、実行するpycharmを伝えることができます):

    私は標準的な呼び出し修辞を追加するまで欲しいです。


    (編集済み) だから私の質問は、なぜPythonのパッケージはその__init__.pyの終わりにその修辞を持っていないだろう

    1. ですか?
    2. pycharmを設定してその中からペリカン(または類似のpythonパッケージ)を実行してデバッグするにはどうすればよいですか?
  • +0

    あなたがarは何不明であるpelican.main()機能に

  • 実行(デバッグのためのデバッグモードで)このスクリプトを呼び出しますpycharmやemacsから実行しようとしています。 'pelican'はバイナリプログラムとしてインストールされます。 –

  • +0

    あなたはいつも 'pelican.main()' –

    +0

    をディスク上の 'pelican'ファイル(Linux:' pelican')を見つけてPyCharmで開くことができます - 通常のpythonファイル(拡張子なし) PyCharmで実行する前にプロジェクトにプロジェクトを追加してファイルを追加する) – furas

    答えて

    4

    pelican/setup.pyには、いくつかのエントリポイントを定義しています

    entry_points = { 
        'console_scripts': [ 
         'pelican = pelican:main', 
         'pelican-import = pelican.tools.pelican_import:main', 
         'pelican-quickstart = pelican.tools.pelican_quickstart:main', 
         'pelican-themes = pelican.tools.pelican_themes:main' 
        ] 
    } 
    

    私は最初のものは、あなたがpelicanコマンドを実行すると機能pelican.main()が呼び出されたことを伝えますね。あなたはPyCharmからペリカン実行したい場合は

    だから、あなたはおそらくだけで、あなたが行うことができますpelican/__init__.py

    main()機能を実行する必要があります。

    • だけインポートする簡単なスクリプトを作成し、
    +0

    > PyCharmからペリカンを実行したい場合は、pelican/__ init__.pyのmain()関数を実行するだけです。 はい、どうですか? –

    +0

    @Jerry: 'pelican.main()'関数を起動したスクリプトを作成し、作成したスクリプトを実行してトリックを実行します。 – Tryph

    +0

    私はそれを試してみるよ、ありがとう! –

    関連する問題