![](/img/trans.png)
[英]Installing Python package from version control where setup.py is not in the project root
[英]setup.py and installing a python project
我查看了setup.py文檔,我仍然遇到一些困難,我認為應該是非常基本的。
我把它分解為一個我想要運行的簡單示例項目,我的項目目錄布局如下:
myproject
setup.py
src\
main.py
extern\
__init__.py
mytest.py
MyProject的/ setup.py:
#!/usr/bin/env python
from distutils.core import setup
setup(name = "myproject",
package_dir = {'':"src"},
packages = ["extern"],
scripts = ["src/main.py"],
)
MyProject的/ src目錄/ main.py:
#! /usr/bin/env python
import extern.mytest as mytest
mytest.print_test()
MyProject的/ src目錄/ EXTERN / mytest.py:
#!/usr/bin/env python
def print_test():
print "YAY"
myproject / src / extern / _ init _.py為空。
我正在運行setup.py:
setup.py install --prefix ~/local
setup.py將完成沒有錯誤並將main.py移動到〜/ local / bin但是當我運行它時,我收到以下錯誤:
ImportError: No module named extern.mytest
知道我做錯了什么嗎? 謝謝!
問題是該模塊不在sys.path
下,並且import
語句無法找到它。
在我的例子中, extern
模塊安裝在~/local/lib/python2.7/site-packages/extern
。 但請注意,在安裝過程中,安裝路徑被任意設置為~/local
。
要解決此問題,可以將PYTHONPATH
變量設置為安裝模塊的位置,或將該路徑添加到main.py
sys.path
。
或者,而不是:
setup.py install --prefix ~/local
使用:
setup.py install --user
這將安裝在您的用戶站點包目錄(我的平台中的~/.local
)中,python將能夠毫無問題地找到該包。 但是,您可能需要更改PATH
環境變量以包含~/.local/bin
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.