我正在开发一个供内部使用的包,并且该包有一个 setup.py
文件(见下文)。我有点困惑,因为当我安装我的包时(在环境中&处于可编辑模式,所以更改会在我开发它时得到反映),如果我在开发目录中,导入工作,但从任何其他目录中说“找不到包”目录。
此外,pip list
显示了包。
要安装,我执行以下操作:
~ > cd path/to/package
package > conda activate env
package (env) > pip install -e .
安装包。现在,问题是
package (env) > python -c "import mypackage" # works!
package (env) > cd
~ (env) > python -c "import mypackage" # error!
~ (env) > pip list | grep "mypackage"
mypackage 0.1.0
发生了什么?文档说
<块引用>-e, --editable
从本地项目路径或 VCS 网址以可编辑模式(即 setuptools“开发模式”)安装项目。
这并没有真正告诉我它应该只在所说的本地项目路径中工作......
import os
import sys
from setuptools import find_packages, setup
def read(fname):
return open(os.path.join(os.path.dirname(__file__), fname)).read()
LICENSE = "MIT"
setup(
name="name",
version="0.1.0",
author="organization",
description="...",
long_description=read('README.md'),
packages=find_packages(),
license=LICENSE,
classifiers=[
...
],
)
答案 0 :(得分:-1)
您需要将您的模块所在的位置添加到系统路径中
import sys
sys.path.append(yourPathHere)
import yourModule
编辑 - 为清楚起见 - 以上内容进入调用模块的 .py,而不是用于编译它的 setup.py。
嗯 - 我看到您的环境确实通过 grep 看到了它。那就无视以上吧!!