Table of Contents

名前の競合

Pythonスクリプトの名前は、スクリプト内で使用しているパッケージの名前と同じであってはなりません。そうでないと、競合が発生します。

pip install numpy

次に、numpy.pyという名前のスクリプトを作成します。

import numpy as np
print(np.array([1, 2, 3]))

スクリプトを実行すると、エラーが発生します。

python numpy.py

# or
python -c "import numpy as np; print(np.array([1, 2, 3]))"

# Traceback (most recent call last):
#   File "/home/xxx/python-sandbox/numpy.py", line 1, in <module>
#     import numpy as np
#   File "/home/xxx/python-sandbox/numpy.py", line 3, in <module>
#     print(np.array([1, 2, 3]))
#           ^^^^^^^^
# AttributeError: partially initialized module 'numpy' has no attribute 'array' (most likely due to a circular import)

スクリプトnumpy.pyは、競合を避けるためにexecute_numpy.pyのように名前を変更する必要があります。