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

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

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

自身のプラットフォーム・プログラム・データセットに対して、外部ソースを取り込むプロセスをimportと呼びます。

Python

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

Q&A

解決済

1回答

4907閲覧

rakuten_rssの使い方がわかりません。

yanyanp

総合スコア1

import

自身のプラットフォーム・プログラム・データセットに対して、外部ソースを取り込むプロセスをimportと呼びます。

Python

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

1グッド

1クリップ

投稿2021/09/24 11:02

前提・実現したいこと

初学者がpythonでrakuten_rssを使用しようと思ってます。

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

PS C:\Users\syake> pip install rakuten_rss Collecting rakuten_rss Using cached rakuten_rss-0.0.5-py3-none-any.whl (7.8 kB) Installing collected packages: rakuten-rss Successfully installed rakuten-rss-0.0.5

installはできたのですが、importが出来ません。

>>> from rakuten_rss import rss Traceback (most recent call last): File "<stdin>", line 1, in <module> ImportError: cannot import name 'rss' from 'rakuten_rss' (unknown location)

原因がわかる方いましたら、ご教授よろしくお願いします。

EC_👍を押しています

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

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

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

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

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

guest

回答1

0

ベストアンサー

これはたぶん、あなたの操作ミスとかではなく、パッケージ側のセットアップが間違っています。

pip で入手できる 0.0.5 ではありませんが、GitHub で公開されている 0.0.1 は使える可能性があります。
https://github.com/zaq9/rakuten_rss

緑色の「Code」というボタンからプロジェクト全体を Zip 形式でダウンロードできるので、その中の lib ディレクトリと rakuten_rss.py をじぶんの Python ファイルと同じフォルダに置いてください。同じ階層にあれば import rakuten_rss で使用できます。

ただし、依存している lib.ddeclientwindll というモジュールをインポートしようとしてます。これは Windows にしかないようなので、これに依存している rakuten-rss 自体 Windows 以外では使えない可能性があります。(深くは調べていません)


この先は興味があれば読む程度でよいです。

パッケージがどう間違っていて、なぜ pip install では使えないのか。

たいてい、パッケージは setup.py と同じ階層にパッケージのディレクトリを作り、その中にソースファイルと __init__.py をいれます。ところが、このパッケージは同じ階層に直接ソースファイルと __init__.py を置いており、これらが認識されません。

そして依存しているライブラリを lib ディレクトリ以下にまとめてあります。setup.py からみると、これがパッケージ本体になってしまいます。

この結果、pip install rakuten-rss すると lib ディレクトリだけがインストールされ、rakuten_rss.py は入っていないという状態になります。

これを確認するには、pip show rakuten-rss でインストール場所を出力します。

sh

1pip show rakuten-rss 2 3# 出力例 4# /usr/local/lib/python3.6/site-packages

そのディレクトリの内容を出してみます。

sh

1ls /usr/local/lib/python3.6/site-packages

おそらく rakuten_rss-0.0.5.dist-info があるのに rakuten_rss はなく lib だけ追加されています。中身はもちろんリポジトリと同じ __init__.py, ddeclient.py です。

この場合、今の状況だとどうやっても pip 経由では使えません。

投稿2021/09/24 12:47

編集2021/09/24 12:50
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

yanyanp

2021/09/24 13:45

詳しい解説ありがとうございます。 パッケージの仕組みを理解できていなかったため、凄く助かりました。 win10を使っているためwindll(?)は問題はなさそうです。 助言通りに行った所、 ``` >>> from rakuten_rss import rss Traceback (most recent call last): File "<stdin>", line 1, in <module> File "C:\Users\syake\scoop\apps\python\current\lib\rakuten_rss.py", line 3, in <module> from lib.ddeclient import DDEClient ModuleNotFoundError: No module named 'lib.ddeclient' ``` 次はこのようなエラーが出ました。 ddeclient.pyは実行することができるのですが、これはまた、パッケージ側の問題なのでしょうか?
退会済みユーザー

退会済みユーザー

2021/09/24 15:45

`lib` の中に `rakuten_rss.py` 入れてませんか? ・あなたの.pyファイル ・rakuten_rss.py ・lib(中に __init__.py と ddeclient.py が入っている) という置き方なのですが。
yanyanp

2021/09/26 07:41

返事が遅れてしまい申し訳ございません。 私の.pyファイルは別のところに保存してありますが ・rakuten_rss.py ・lib(中に __init__.py と ddeclient.py が入っている) に関しては問題ない置き方をしております。
退会済みユーザー

退会済みユーザー

2021/09/26 11:50

回答の通りに配置せずにできませんと言っているならこちらにできる事はもうないですね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問