簡體   English   中英

導入自定義 python 模塊

[英]Importing custom python module

我正在創建 pip 包,在提交之前我想嘗試一下。 為簡單起見,讓我們假設 python 腳本如下所示:

def foo():
    print("Hello World!")

我的包含元數據的setup.py看起來像:

#!/usr/bin/env python3
from setuptools import setup, find_packages

    setup(
        name="test_super_secret",
        version="1.0",
        description="testing pip version 1",
        packages=find_packages(),
    )

我已經使用Wheel編譯了腳本,所以我可以通過 pip 安裝它:

user@pc:$ python -m pip install dist/test_super_secret-1.0-py2-none-any.whl 
Processing ./dist/test_super_secret-1.0-py2-none-any.whl
Installing collected packages: test-super-secret
Successfully installed test-super-secret-1.0

但是,當我無法從 python 導入這樣的模塊時:

    >>> import test-super-secret
  File "<stdin>", line 1
    import test-super-secret
               ^
SyntaxError: invalid syntax

我究竟做錯了什么? 我應該以其他方式導入它還是應該更改設置以便可以導入模塊?

編輯:即使在setup.py稱為testsupersecret ,也無法導入模塊:

>>> import testsupersecret
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named testsupersecret

test-super-secret不是有效的模塊名稱——模塊名稱(或變量)中不能有連字符,python 認為這是一個減號,這就是為什么你會得到無效的語法。 您應該使用下划線(您可能已經根據您的setup.py -- name="test_super_secret"使用下划線,只需嘗試導入test_super_secret )。

(Python 包的名稱中可以有連字符,這可能是混淆的來源。所以test-super-secret是 pip 包的有效名稱,但模塊必須命名為test_super_secret 。)

看起來我沒有正確的文件夾結構來獲取模塊作為庫。 一旦我創建了包含__init__.py目錄並將我的腳本移動到該目錄,我就能夠導入模塊,如import <MyLibrary>.<my_script_name>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM