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

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

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

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

Q&A

解決済

1回答

4282閲覧

自作module importできない問題

ssspwp

総合スコア31

Python 3.x

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

0グッド

0クリップ

投稿2017/11/04 08:20

Windows10
Python 3.6.2
C:\Users\pyworksフォルダの中にkame_tools.pyとういのが入っている状態です。
import kame_toolsと入力すると以下のエラーが出ます。

Traceback (most recent call last): File "<stdin>", line 1, in <module> ModuleNotFoundError: No module named 'kame_tools'

ちなみに、このやり方でもできませんでした。
import sys
sys.path.append("ファイルの場所")

置いてる場所が悪いのでしょうか?

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

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

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

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

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

LouiS0616

2017/11/04 08:26

『ファイルの場所』は具体的にどのように指定しましたか?
ssspwp

2017/11/04 08:40

sys.path.append("C:\Users\pyworks")
ssspwp

2017/11/04 08:42 編集

するとこのようなエラーがでます。『 File "<stdin>", line 1 SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape』
guest

回答1

0

ベストアンサー

sys.path.appendに失敗していることについて

文字列内に\を置くと、直後の文字がエスケープされます。
次のいずれかで対応してください。

\自体をエスケープする

Python

1sys.path.append("C:\Users\pyworks")

raw文字列を用いる

Python

1sys.path.append(r"C:\Users\pyworks")

原因

\U及び\uは、Pythonではユニコード文字を扱う記法です。

Python

1>>> '\U00004f8b' 2'例'

多くの言語が、このようなエスケープシーケンスを採用しています。

エスケープシーケンス (escape sequence) とは、コンピュータシステムにおいて、通常の文字列では表せない特殊な文字や機能を、規定された特別な文字の並びにより表したもの。

\を用いる際は、常にこの問題が付きまとうことにご留意ください。

モジュールのインポートに失敗していることについて

コメントでのご推察の通り、.pyファイルとして正しく保存されていないことが原因です。
Windowsのエクスプローラでは、デフォルトで拡張子は表示されません。
表示するには、『表示』⇒『ファイル名拡張子』にチェックを入れてください。

投稿2017/11/04 08:43

編集2017/11/04 09:04
LouiS0616

総合スコア35658

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

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

ssspwp

2017/11/04 08:50

>>> import sys >>> sys.path.append("C:\Users\pyworks") >>> import kame_tools Traceback (most recent call last): File "<stdin>", line 1, in <module> ModuleNotFoundError: No module named 'kame_tools' >>> sys.path.append(r"C:\Users\pyworks") >>> import kame_tools Traceback (most recent call last): File "<stdin>", line 1, in <module> ModuleNotFoundError: No module named 'kame_tools' >>>
ssspwp

2017/11/04 08:52

あと、kame_tools.pyの種類がTXTファイルなんですけど、大丈夫でしょうか?
LouiS0616

2017/11/04 08:53

原因それだと思います。 kame_tools.py.txtとして保存しているのでは?
LouiS0616

2017/11/04 08:54

Windowsでしたら、エクスプローラー上部の『表示』⇒『ファイル名拡張子』で拡張子を表示できます。
ssspwp

2017/11/05 04:11 編集

無事importできました! しかし、こんなエラーがでてきました(-_-;) ``` >>> import sys >>> sys.path.append(r"C:\Users\pyworks") >>> import kame_tools >>> center_circle(kame) Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'center_circle' is not defined >>> ``` kame_toolsの中身は ``` def center_circle(target): target.penup() target.forward(200) target.left(90) target.pendown() target.circle(200) target.left(90) target.penup() target.forward(200) target.pendown() ```
ssspwp

2017/11/05 04:28

↑インデントしてないように見えますが、ファイルのほうではしっかりインデントしてます
ssspwp

2017/11/05 04:32

すいません、無事できました!ありがとうございます。
LouiS0616

2017/11/05 06:13

出来たようですが、他に辿り着く人のために一応書いておきます。 from kame_tools import center_circleが必要になりますね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問