我正在学习PowerShell,我正在尝试构建自己的模块库.
我写了一个简单的模块XMLHelpers.psm1并放入我的文件夹$home/WindowsPowerShell/Modules.
当我做:
import-module full_path_to_XMLHelpers.psm1
Run Code Online (Sandbox Code Playgroud)
有用.但当我这样做时:
import-module XMLHelpers
Run Code Online (Sandbox Code Playgroud)
它不起作用,我收到错误:
Import-Module:未加载指定的模块"xmlhelpers",因为在任何模块目录中都找不到有效的模块文件.
我检查过环境变量PSModulePath包含这个文件夹.由于它是一个网络文件夹,我还尝试将其移动到本地文件夹并进行修改PSModulePath但没有成功
$env:PSModulePath=$env:PSModulePath+";"+'C:\local'
Run Code Online (Sandbox Code Playgroud)
有什么可能导致这个问题的想法吗?
在Perl中,当我这样做时use <module name> <ver>;,系统会.pm在@INC路径中的某个位置找到库的文件.
是否有可靠的方式来实际加载文件?
如何在不同的目录中包含Perl模块?它需要是包含它的模块的相对路径.
我试过了
push ( @INC,"directory_path/more_path");
Run Code Online (Sandbox Code Playgroud)
也
push ( @INC,"directory_path\\more_path");
Run Code Online (Sandbox Code Playgroud) 我已经设法在我的Mac上安装spyder并运行,但我想添加一些默认情况下不包含的模块(mahotas和pymorph).
我通过easy_install在终端安装了两个,两者似乎都没有任何错误消息安装.从终端运行python并使用import mahotas和import pymorph工作正常,没有错误消息.但是,当我从spyder中的脚本运行相同的行时,我收到以下错误:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/spyderlib/widgets/externalshell/sitecustomize.py", line 493, in runfile
execfile(filename, namespace)
File "/Users/Name/Documents/Python/dna.py", line 11, in <module>
import pymorph
ImportError: No module named pymorph
Run Code Online (Sandbox Code Playgroud)
我现在要做的就是运行导入线,就是这样.我似乎无法找到任何关于此的内容.我猜测spyder使用单独的python安装,并且通过终端安装模块只将它们安装到python的系统版本.如何将它们添加到spyder?
眼镜:
Mac OSX 10.7.4
Spyder 2.1.9
目前正在尝试使用Python3并使用绝对导入将一个模块导入另一个模块但我收到错误ModuleNotFoundError: No module named '__main__.moduleB'; '__main__' is not a package.考虑这个项目结构:
proj
__init__.py3 (empty)
moduleA.py3
moduleB.py3
Run Code Online (Sandbox Code Playgroud)
moduleA.py3
from .moduleB import ModuleB
ModuleB.hello()
Run Code Online (Sandbox Code Playgroud)
moduleB.py3
class ModuleB:
def hello():
print("hello world")
Run Code Online (Sandbox Code Playgroud)
然后运行python3 moduleA.py3给出错误.这里有什么需要改变的?
谢谢!
我希望能够从导入的模块中动态检索当前执行的模块或类名.这是一些代码:
foo.py:
def f():
print __name__
Run Code Online (Sandbox Code Playgroud)
bar.py:
from foo import f
def b(): f()
Run Code Online (Sandbox Code Playgroud)
这显然不起作用__name__,因为包含该功能的模块的名称.我希望在foo模块内部访问的是当前正在使用的执行模块的名称foo.因此,在上面的情况下,它将是bar但如果导入任何其他模块foo我想foo动态地访问该模块的名称.
编辑:该inspect模块看起来非常有前途,但它并不完全是我想要的.我希望的是我可以访问的某种全局或环境级变量,它包含当前执行模块的名称.并不是说我不愿意遍历堆栈来查找信息 - 我只是认为Python可能已经暴露了这些数据.
编辑:这是我试图使用它的方式.我有两个不同的Django应用程序,它们都需要将错误记录到文件中.让我们说它们被称为"AppOne"和"AppTwo".我还有一个地方可以记录这些文件:" /home/hare/app_logs".在任何给定点的每个应用程序中,我希望能够导入我的记录器模块并调用将日志字符串写入文件的日志功能.但是,我想要做的是创建一个目录,app_logs该目录是当前应用程序的名称("AppOne"或"AppTwo"),以便每个应用程序的日志文件将进入各自的日志记录目录.
为了做到这一点,我认为最好的办法是对记录器模块能够获得某种形式的全局变量,它表示当前应用程序的名称,因为它是负责了解父日志目录的位置,并创建应用程序的日志目录,如果它还不存在.
我们假设这是我的config.js或main.js:
require.config({
// paths are analogous to old-school <script> tags, in order to reference js scripts
paths: {
jquery: "libs/jquery-1.7.2.min",
underscore: "libs/underscore-min",
backbone: "libs/backbone-min",
jquerymobile: "libs/jquery.mobile-1.1.0.min",
jquerymobilerouter: "libs/jquery.mobile.router.min"
},
// configure dependencies and export value aliases for old-school js scripts
shim: {
jquery: ["require"],
underscore: {
deps: ["jquery"],
exports: "_"
},
backbone: {
deps: ["underscore", "jquery"],
exports: "Backbone"
},
jquerymobilerouter: ["jquery", "backbone", "underscore"],
jquerymobile: ["jquery", "jquerymobilerouter", "backbone", "underscore"]
}
});
require(["jquery", "backbone", "underscore", "app/app.min", "jquerymobilerouter", "jquerymobile"], function ($, Backbone, _, …Run Code Online (Sandbox Code Playgroud) 如何测试模块是否已在python中导入?
例如,我需要基础知识:
if not has_imported("sys"):
import sys
Run Code Online (Sandbox Code Playgroud)
也
if not has_imported("sys.path"):
from sys import path
Run Code Online (Sandbox Code Playgroud)
谢谢!
RGS.
感谢您的所有评论:代码已粘贴在此处. 自动导入文件夹中的所有子模块然后调用相同的名称函数 - python runtime inspect相关
假设我有一个模块foo.py和一个包foo/.如果我打电话
import foo
Run Code Online (Sandbox Code Playgroud)
哪一个会装?如何指定我的魔杖来加载模块或包?
我正在使用Android工作室,我想在我的项目中添加模块,如"action bar Sherlock"或jar文件,但是当我打开项目结构时,菜单中没有模块或库:\

在intelij它出现:

所以有什么问题?如何在Android studio中添加这些模块?
module ×10
import ×4
python ×4
perl ×2
android ×1
easy-install ×1
javascript ×1
jquery ×1
package ×1
powershell ×1
python-3.x ×1
requirejs ×1
spyder ×1
testing ×1