質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Jupyter

Jupyter (旧IPython notebook)は、Notebook形式でドキュメント作成し、プログラムの記述・実行、その実行結果を記録するツールです。メモの作成や保存、共有、確認などもブラウザ上で行うことができます。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

1323閲覧

静的サイトジェネレータ Pelicanblogにて、プラグイン機能を追加すると、 ModuleNotFoundErrorが表示されます。

IkumaUchida

総合スコア11

Jupyter

Jupyter (旧IPython notebook)は、Notebook形式でドキュメント作成し、プログラムの記述・実行、その実行結果を記録するツールです。メモの作成や保存、共有、確認などもブラウザ上で行うことができます。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2019/08/17 17:32

前提・実現したいこと

こんにちは、私は現在ブログ作成のツールとして、Pythonの静的サイトジェネレーターであるPelicanblogを利用して、記事を作成しています。
それに際し、パスワードを設定することで記事を暗号化したいと考えています。
そこで、Pelicanblogのプラグイン機能の中に、encrypt_contentという記事の暗号化をするパッケージが存在し、それを利用して記事の暗号化を試みました。以下のページにてプラグイン機能の内容を確認することが出来ます↓
https://github.com/getpelican/pelican-plugins

プラグイン機能のやり方としては、まず上記のページからリポジトリをクローンして、pelicanconf.pyの中で、設定ファイルで必要なものを有効にします:
その後プラグイン機能の中で、利用したいパッケージを記入しする、という流れです。ソースコードは下記から確認できます。
しかし、その後pelicanconf.pyを実行すると、ModuleNotFoundError:No module named 'encrypt_content'と表示されてしまい、encrypt_contentパッケージが利用できません。
初めはパスが間違っているのかと思ったのですが、そういう訳ではなさそうなので、原因が特定出来ません。もしアドバイスが可能であるならば、ご教授願いしたいと思います。
よろしくお願い致します。

発生している問題・エラーメッセージ

ModuleNotFoundError:No module named 'encrypt_content'

該当のソースコード

python

1from __future__ import unicode_literals 2 3AUTHOR = 'Ikuma' 4SITENAME = 'Dashboard' 5SITEURL = '' 6 7PATH = 'content' 8 9TIMEZONE = 'Japan' 10 11DEFAULT_LANG = 'jp' 12#Copy the encrypt_content folder to the root of your Pelican project (or somewhere that is accessible for importing),and, add the following to your pelicanconf.py file: 13PLUGIN_PATHS = ['path/to/pelican-plugins'] 14PLUGINS = ['encrypt_content'] 15# Feed generation is usually not desired when developing 16FEED_ALL_ATOM = None 17CATEGORY_FEED_ATOM = None 18TRANSLATION_FEED_ATOM = None 19AUTHOR_FEED_ATOM = None 20AUTHOR_FEED_RSS = None 21 22# Blogroll 23LINKS = (('Pelican', 'http://getpelican.com/'), 24 ('Python.org', 'http://python.org/'), 25 ('Jinja2', 'http://jinja.pocoo.org/'), 26 ('You can modify those links in your config file', '#'),) 27 28# Social widget 29SOCIAL = (('You can add links in your config file', '#'), 30 ('Another social link', '#'),) 31 32DEFAULT_PAGINATION = 10 33#encrypted 34ENCRYPT_CONTENT = { 35 'title_prefix': '[Encrypted]', 36 'summary': 'This content is encrypted.' 37} 38# Uncomment following line if you want document-relative URLs when developing 39#RELATIVE_URLS = True 40 41THEME = "myTheme" 42 43import sys 44sys.path.insert(0, './') 45#from generate import main 46#main()

試したこと

・pelican-pluginsディレクトリの位置を変えながらpelicanconf.pyを実行してみた
・他のパッケージは利用できるのかどうか確認をしたかったため、encrypt_contentパッケージ以外のものも試したが、やはり同じエラーが表示された。
→どのパッケージで試してもModuleNotFoundErrorと表示されるので、何か初歩的なミスをしている気がするのですが、ミスが見つけられませんでした、、、

補足情報(FW/ツールのバージョンなど)

python3を利用しています
Jupyter labを利用してコードは書いています。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

PLUGIN_PATHS = ['path/to/pelican-plugins']

これは、その pelican から このcloneしたリポジトリの相対PATHに正しく設定されていますか?
※ されていないと、そういうエラーになりそうですが。


■ 追記1

Copy the encrypt_content folder to the root of your Pelican project (or somewhere that is accessible for importing),and, add the following to your pelicanconf.py file:

とも書いてあるので、その encrypt_content を 元Projectのroot folderにコピーしたら、PLUGIN_PATHSは指定しなくても良いかもしれないですね。

基本的には PYTHONPATH という python モジュールを import するときに探すPATHの設定の問題なのだと思います(PYTHONPATH上に encrypt_content ディレクトリがないから not found になる)。

投稿2019/08/17 22:58

編集2019/08/17 23:02
mokemokechicken

総合スコア948

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

IkumaUchida

2019/08/17 23:41

mokemokechickenさん 回答頂き誠に有難うございます。 指摘の通り、ルートディレクトリに直接encrypt_contentディレクトリをコピーして実行してみたところ、上手く動作しました。 今回の課題に際し、相対パス、絶対パスの知識がまだ曖昧で上手くパスの処理が出来ていないと感じましたので今回を機にまた勉強し直そうと思います。 今回はご指摘いただき大変有難うございました
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問