草庐IT

distutils_path

全部标签

python - 确保 py.test 在 sys.path 中包含应用程序目录

我有一个项目目录结构如下(我认为这很标准):my_projectsetup.pymypkg__init__.pyfoo.pytestsfunctionaltest_f1.pyunittest_u1.py我正在使用py.test作为我的测试框架,我希望能够在my_project目录中运行py.testtests我的测试。这确实有效,直到我尝试在测试中使用(例如)importmypkg导入我的应用程序代码。那时,我收到错误“没有名为mypkg的模块”。经过一番调查,似乎py.test使用sys.path中的测试文件目录运行测试,但不是运行py.test的目录。为了解决这个问题,我在test

python - os.getcwd() 与 os.path.abspath(os.path.dirname(__file__))

我正在使用os模块在我的Django项目settings.py文件中具有相对路径。变量SITE_ROOT设置为settings.py文件的当前工作目录,然后用于引用同样位于同一目录中的所有static/media目录。这是我的问题:printos.getcwd()printos.path.abspath(os.path.dirname(__file__))在settings.py中,上述语句都有相同的输出。但是只有当我使用SITE_ROOT=os.path.abspath(os.path.dirname(__file__))时我的模板才会加载Django在这里寻找模板:TEMPLATE

python - 用 os.path.join() 构造绝对路径

我想在python中构建一个绝对路径,同时对路径分隔符之类的东西保持相当的清醒。edit0:例如在我的文件系统/etc/init.d(或C:\etc\init.d在w32上),我只想从元素etc和init.d构造它(在w32上,我可能还需要一个磁盘ID,像C:)为了不必担心路径分隔符,os.join.path()显然是首选工具。但似乎这只会创建relative路径:print("MYPATH:%s"%(os.path.join('etc','init.d'),)MYPATH:etc/init.d添加一个虚拟的第一个元素(例如'')没有任何帮助:print("MYPATH:%s"%(os

python - Jupyter 和 Python 中的 sys.path 不同 - 如何在 Jupyter 中导入自己的模块?

在Jupyter中我自己的小模块没有加载,但在python/bpython中一切都很好。打字时importsysprint(sys.path)我的模块的路径不会在Jupyter中显示,但在python/bpython中它仍然存在。我正在使用:.bashrc中的PYTHONPATH以包含我的模块,虚拟环境中的Jupyter和bpython。最相似的问题是这个Cannotimportmodulesinjupyternotebook;wrongsys.path如何配置Jupyter以自动加载我的模块? 最佳答案 这是我在jupyterno

python - 使 Python 中的 distutils 自动查找包

当在Python中的distutils中的setup.py中描述python包时,有没有办法让它自动获取每个具有__init__的目录.py并将其作为子包包含在内?即如果结构是:mypackage/__init__.pymypackage/a/__init__.pymypackage/b/__init__.py我想避免这样做:packages=['mypackage','mypackage.a','mypackage.b']而只是这样做:packages=['mypackage']并让它自动找到像a和b这样的东西,因为它们有一个init文件。谢谢。 最佳答案

python - 在 Python 中打包旧版 Fortran。可以使用 setuptools 和 numpy.distutils 吗?

我正在尝试为我所在领域的一些流行的Fortran代码制作python包分发。我希望它使用带有setup.py文件的最标准方法。相关问题对学习有帮助howtowrapFortranextensions.在使用这种方法时,我注意到在混合setuptools和numpy.distutils时会出现一些令人困惑的行为。将两者混合是不好的做法吗?截至2015年,似乎最好尽可能使用setuptools。但是,我想以与numpy.兼容的方式构建Fortran扩展,所以我想从numpy.distutils来获取Extension和setup。我正在使用以下基本方法:fromsetuptools.com

python - 在 Windows 上使用 os.path.join 混合斜线

我倾向于只对路径('/')使用正斜杠,python也很喜欢它在Windows上。在os.path.join的描述中,如果你想跨平台,这是正确的方法。但是当我使用它时,我得到了混合斜线:importosa='c:/'b='myFirstDirectory/'c='mySecondDirectory'd='myThirdDirectory'e='myExecutable.exe'printos.path.join(a,b,c,d,e)#Result:c:/myFirstDirectory/mySecondDirectory\myThirdDirectory\myExecutable.exe

python - 我应该使用哪一个SEP或OS.PATH.SEP?

他们是一样的,但是我应该使用哪一个?http://docs.python.org/library/os.html:os.sepThecharacterusedbytheoperatingsystemtoseparatepathnamecomponents.Thisis'/'forPOSIXand'\'forWindows.Notethatknowingthisisnotsufficienttobeabletoparseorconcatenatepathnames—useos.path.split()andos.path.join()—butitisoccasionallyuseful.

python - PEP8 - 使用 sys.path 导入不在文件顶部

问题PEP8有一条关于将导入放在文件顶部的规则:Importsarealwaysputatthetopofthefile,justafteranymodulecommentsanddocstrings,andbeforemoduleglobalsandconstants.但是,在某些情况下,我可能想做一些类似的事情:importsyssys.path.insert("..",0)importmy_module在这种情况下,pep8命令行实用程序会标记我的代码:E402modulelevelimportnotattopoffile通过sys.path修改实现PEP8合规性的最佳方法是什么

python - __path__ 有什么用?

在今天之前,我从未注意到在我的一些包上定义的__path__属性。根据文档:Packagessupportonemorespecialattribute,__path__.Thisisinitializedtobealistcontainingthenameofthedirectoryholdingthepackage’s__init__.pybeforethecodeinthatfileisexecuted.Thisvariablecanbemodified;doingsoaffectsfuturesearchesformodulesandsubpackagescontainedin