Mais

Não é possível executar um script Python que foi exportado do ModelBuilder


Eu tenho um modelo que copia um único geodatabase SDE do formulário F.C para um geodatabase scratch e o copia de volta com um novo nome para o mesmo geodatabase SDE novamente. E isso funciona perfeitamente para formar o modelo. Agora exportei o modelo para o script Python, mas infelizmente não funciona e não descobri qual é o problema.

Aqui está o código python de resultado

# Import arcpy module import arcpy # Variáveis ​​locais: Points_DBO_Communities = "Conexões de banco de dados  1.sde  Points.DBO.Communities" Buildings_POINTS_Select = "C:  Usuários  ahmads  Documentos  ArcGIS  Default.gdb  Buildings_POINTS_Select "Points_DBO_Buildings_POINTS1 =" Conexões de banco de dados  1.sde  Points.DBO.Buildings_POINTS1 "# Processo: Selecione arcpy.Select_analysis (Points_DBO_Communities, Buildings_POINTS_Select," ") # Processo de gestão: Copiar recursos, arcpy.CopyFeatures_POTS_POTS_POTS_management1 "", "0", "0", "0")

Agora estou tentando executar o código e recebo esta massagem:

"arcgisscripting.ExecuteError: Falha ao executar. Os parâmetros não são válidos. ERRO 000732: Tabela de entrada: Conjunto de dados C: Usuários jamaln Documentos ArcGIS Default.gdb UrbanMasterPlans_Objection_S2 não existe ou não é suportado Falha ao executar (AddField) "

Qual pode ser o problema aqui?


Você executa seu modelo a partir do ArcMap, que está ciente da pasta Database Connections presente na janela Catalog. No entanto, quando você executa seu código em um arquivo Python externo, o arcpy não consegue encontrar as conexões de banco de dados. Você precisa fornecer o arquivo de conexão .sde armazenado em algum lugar do seu disco.

Eu sempre recomendo usar um arquivo .sde mesmo em modelos. Você pode encontrar os arquivos de conexão em C: Users \% user% AppData Roaming ESRI Desktop10.3 ArcCatalog e copiá-los em outro lugar.

Também vejo que você obtém um erro ao tentar substituir uma classe de recurso existente. Você pode searcpy.Exists ()lógica para verificar se o objeto existe e excluí-lo primeiro. Caso contrário, use oarcpy.env.overwriteOutput = True.


Pacote python-is-python3 no Ubuntu 20.04 - o que é e o que realmente faz?

Tendo usado o Ubuntu 18.04 por alguns anos agora, e lendo que o Python 2 foi removido do Ubuntu 20.04, eu estava ansioso para usar os comandos python ou pip em vez de python3 ou pip3. Então, hoje experimentei o Ubuntu 20.04 pela primeira vez e descobri:

Fiquei surpreso e ao examinar as coisas, descobri o seguinte sobre o pacote python-is-python3:

O meio desses 3 links é o mais descritivo, mas nenhum é especialmente claro sobre o que python-is-python3 é / faz e todo o escopo das ramificações se sudo apt-get install python-is-python3 fosse executado em um Ubuntu 20.04 install.

Aqui estão algumas perguntas que tenho sobre python-is-python3:

O python-is-python3 é propriedade do Ubuntu / Canonical? Em caso afirmativo, outras distribuições Linux usam python-is-python3 também ou algumas outras distribuições têm um equivalente semelhante?

Percebi que se eu fosse executar python-is-python3 no prompt de comando, poderia usar o comando python em vez de python3. Primeiro, alguém pode confirmar isso e, em segundo lugar, o mesmo vale para pip, ou seja, pip em vez de pip3?

O link launchpad.net acima menciona a criação de um link simbólico. O python-is-python3 realmente apenas cria um único link simbólico? Parece estranho apresentar um pacote para um propósito tão básico. Além disso, se este pacote for desinstalado posteriormente (ou seja, sudo apt --purge remove python-is-python3), isso remove o link simbólico?

Existe algum pacote Python 2 comumente usado por aí? Não consigo pensar em nenhum improvisado.

Alguém executou python-is-python3 e depois se arrependeu de fazê-lo por um motivo que não foi percebido antes do tempo?

Parece que o benefício de executar python-is-python3 seria não ter que adicionar o 3 no final dos comandos Python, mas a desvantagem é que você teria uma configuração não padrão do Ubuntu, este é um resumo justo do python -is-python3 benefício / desvantagem?


2 respostas 2

Antes de fazer qualquer coisa com o PowerShell ISE, você precisa se certificar de que (1) está executando o PowerShell ISE como administrador e (2) que a política de execução está definida de forma que você possa executar scripts.

Abra o Shell de Gerenciamento do SharePoint e execute

Se você obtiver RemoteSigned, Unrestricted ou Bypass, poderá continuar com segurança. RemoteSigned significa que você não pode executar scripts baixados de outro servidor ou da Internet, a menos que seja assinado. Se você baixar arquivos para executar no PowerShell ISE, defina a política de execução como irrestrita, assim:

Se tudo funcionar conforme o esperado, execute o PowerShell ISE como administrador. Em seguida, tente carregar o SharePoint.PowerShell com o seguinte:

Quando estiver carregado, tente outro comando, como

Se você não receber nenhuma mensagem de erro, significa que o SharePoint.PowerShell está carregado. Se não, corra

e leia as mensagens de erro. Copie a primeira linha do erro recebido e tente pesquisá-lo. Ainda está com problemas? Atualize sua resposta com a mensagem de erro e tentarei ajudar se você me notificar em um comentário.


Em primeiro lugar, como disse ddeimeke, apelidos por padrão não são expandidos em shells não interativos.

Em segundo lugar, .bashrc não é lido por shells não interativos, a menos que você defina a variável de ambiente BASH_ENV.

Mas o mais importante: não faça isso! Por favor? Um dia, você moverá esse script para algum lugar onde os aliases necessários não estejam definidos e ele falhará novamente.

Em vez disso, defina e use variáveis ​​como atalhos em seu script:

Se você olhar a página de manual do bash, encontrará:

Os aliases não são expandidos quando o shell não é interativo, a menos que a opção de shell expand_aliases seja definida usando shopt (consulte a descrição de shopt em COMANDOS DE CONSTRUÇÃO DE SHELL abaixo).

Certifique-se de fornecer seu arquivo de aliases depois de definir isso em seu script.

& # 47.bash_aliases funciona perfeitamente para mim. Freqüentemente, há uma forma de detecção de shell interativa em .bashrc como esta: # Se não estiver executando interativamente, não faça nada [-z & quot $ PS1 & quot] & amp & amp return @Zaid. Talvez você queira verificar isso no arquivo que você originou . & ndash Frank Schubert, 4 de abril de 13 às 1:46

& # 47.bash_aliases pode depender de outras coisas carregadas anteriormente em um shell interativo. A coisa mais próxima que encontrei foi mudar seu hashbang para #! & # 47bin & # 47bash -li Ainda não é perfeito. Idealmente, você deve usar funções e não apelidos. & ndash Stefanos Kalantzis 5 de fevereiro de 16 às 11h47

Os aliases não podem ser exportados, portanto não estão disponíveis em scripts de shell nos quais não estão definidos. Em outras palavras, se você os definir em

/.bashrc eles não estão disponíveis para your_script.sh (a menos que você fonte

/.bashrc no script, que eu não recomendaria, mas existem maneiras de fazer isso corretamente).

No entanto, as funções podem ser exportadas e estarão disponíveis para scripts de shell que são executados em um ambiente no qual foram definidas. Isso pode ser feito colocando-o em seu bashrc:

Como diz o manual do Bash, "Para quase todos os fins, as funções do shell são preferidas aos apelidos."


Use o caminho apropriado onde o Python está instalado, por exemplo:

Se você tiver suporte de caminho semelhante ao Unix em seu sistema (não estou familiarizado com MSYS), você sempre pode inserir o caminho para seu executável python, ou seja, a saída de qual python.

Você pode estar interessado em um iniciador Python para Windows

Descobri que havia uma incompatibilidade entre o arquivo activate.sh do Virtualenv e MSYSGIT. Nunca foi planejado para funcionar no Windows.

O que acontece quando você executa (do shell):

Se ele iniciar uma sessão interativa do python, o python pode ser encontrado. (Você também pode simplesmente executar: digite python). Se ele imprimir "nenhum arquivo ou diretório", então python não foi encontrado em seu PATH. Veja se o seguinte pode ser ajustado para corrigir o problema (espaços no caminho / para / python provavelmente causarão problemas):

As versões mais recentes do Windows 10 oferecem suporte à instalação de subsistemas Linux. Se você correr de lá, os caminhos devem estar corretos.

Deve ser uma solução de trabalho se você concordar em executá-lo dessa forma.

A raiz do problema é que os espaços em shebangs são interpretados como o fornecimento de argumentos adicionais para um executável, portanto, C: Arquivos de programas Python python.exe é visto como C: Arquivos fornecidos pelo programa Python python.exe como um argumento .

A melhor solução para isso, porque o Windows ADORA espaços no diretório $ HOME e Arquivos de programas e outros lugares, embora possa realmente quebrar coisas em cmd.exe e Powershell e outras ferramentas, é:

Instale o Python em C: Python e adicione a pasta C: Python onde reside o python.exe e o diretório Scripts que reside dentro dele à sua variável de ambiente PATH no nível do sistema ou do usuário.

Se você precisar que o Python 2.7.x e 3.x coexistam, instale-os em C: Python27 e C: Python36 e C: Python37 e renomeie o python.exe para python2.exe, python36.exe, python37. exe, etc e adicione cada uma dessas pastas e suas pastas Scripts ao PATH. Você pode querer determinar qual das versões do Python 3 você deseja que seja a "padrão" e também fazer uma cópia nessa pasta como python3.exe para lidar com quaisquer scripts que usem! # / Usr / bin / env python3.

Se o diretório inicial do usuário tiver um espaço, você também poderá ter problemas se usar a sintaxe pip install --user somepackage. O padrão --user é o seu diretório pessoal, e o espaço também confundirá as coisas neste caso. A solução alternativa é descrita aqui, mas se resume a exportar PYTHONUSERBASE para o seu ambiente.


8 Respostas 8

A principal diferença entre o uso dos termos "roteiro" e "script" é a função do documento.

O roteiro que os atores usam durante as filmagens contém principalmente diálogo com uma direção de palco mínima. Isso é semelhante aos 'scripts de especificações' dados a agentes e produtores para gerar interesse no trabalho. O foco principal aqui é contar a história, a palavra e as ações que transmitem a mensagem. Quais efeitos sonoros ou de iluminação que são importantes para o desempenho do ator são anotados. Porém, tudo o que não afeta diretamente o desempenho geralmente é deixado de fora.

O roteiro é a camada extra com tudo o que foi deixado de fora do roteiro. Pode muito bem ser o 'roteiro de filmagem' na maioria dos casos, que é menos uma ferramenta do ator e mais uma ferramenta do diretor. O roteiro inclui aqueles aspectos da filmagem que estão fora do alcance do ator, coisas como ângulos de câmera e instruções de corte ou desvanecimento, efeitos que o público verá, mas não afetarão a atuação do ator no set.

A razão pela qual a palavra 'roteiro' não é muito usada no teatro ao vivo é porque não há instruções especiais para produzir a obra em uma tela ou em um meio de cinema. A performance no palco é toda a performance. Não há ângulos de câmera ou salas de edição. Não há nada extra que precise ser adicionado ao roteiro para que a performance final funcione para o público. Um roteiro é algo que praticamente só tem valor em um meio cinematográfico.


Isso é exatamente como eu fiz muitos anos atrás, esta é aquela atualização de script para Yosemite 10.11.5 - mas eu não testei.

Um script que salva cada item do Keychain como texto:

Um segundo item do AppleScript que clica no botão & quotAllow & quot que o primeiro script aciona ao ler o item do KeyChain.

[Editar: julho de 2016] Isso foi atualizado para a nota 10.11.5, pois alguns relataram o bloqueio de seus Mac com atraso de 0,2, limitei o script para processar apenas 200 resultados por vez, portanto, se você tiver 1050 itens de chaveiro , você precisará executar este script 6 vezes no ScriptEditor, você também terá que permitir que o ScriptEditor seja habilitado na seção Acessibilidade nas preferências de segurança em:

Então, o link / atualização do yosemite acima também tem uma etapa de conversão de ruby ​​do arquivo de texto para CSV. Boa sorte!

ShreevatsaR aponta nos comentários que esta conversão de ruby ​​cobre apenas & quotswords da Internet & quot e não & quotswords de aplicação & quot. Isso ocorre porque o objetivo do script é exportar as & quotsenha da Internet & quot para o aplicativo 1Password.

E aqui está uma questão de estouro de pilha e resposta nas mesmas linhas

O System.keychain está aqui:

Para permitir que o AppleScript interaja com a caixa de diálogo, as Preferências do Sistema - & gt Segurança e Preferências de Privacidade - & gt Guia Privacidade, a Opção de Acessibilidade deve ter & quotScript Editor.app & quot habilitado


3 respostas 3

Parece que o fiz funcionar colocando sudo modprobe bcm2835-v4l2 na seção inicial de /etc/init.d/motion e comentando #export LD_PRELOAD = / usr / lib / uv4l / uv4lext / armv6l / libuv4lext.so

Tentei a resposta mencionada e não funcionou muito bem para mim. Eu encontrei aquele anexo

para / etc / modules funcionou perfeitamente. Obviamente a parte comentada não é necessária, mas sempre gosto de ter contexto quando preciso revisar algo novamente.

Se a câmera funcionou bem anteriormente, mas de repente parou de funcionar e mostra uma tela cinza (por exemplo, em movimento), um possível motivo pode ser que você usou raspi-config e em Opções avançadas > Divisão de Memória definiu um valor inferior a 128 MB.


2 respostas 2

Eu uso a versão fonte e nunca tive problemas - aqui está a versão resumida da instalação para a distribuição fonte.

O initdb inicializa a instância do servidor após a instalação (uma instalação de um rpm ou apt-get pode cuidar disso para você).

Deve iniciar o servidor para você - geralmente uso a opção pg_ctl. (Quando você executa o initdb, você deve ver os comandos acima como uma dica de como iniciar o servidor - mas, novamente, você pode não ter que executar o initdb).


E para remover um entrada, coloque um sinal de menos "-" depois do = char assim:

Nota: Essas são apenas chaves de exemplo. Eles realmente não vão funcionar.

Eu evitaria usar outro script como você posso faça isso em um arquivo .cmd usando os comandos REG.

Você pode fazer algo semelhante a isto:

Se você deseja excluir apenas entradas específicas, deve adicionar um argumento / v "EntryName" após o caminho para a chave. Por exemplo:

Ambos farão com que um aviso seja emitido antes de excluir os valores. Para evitar isso, você deve usar o argumento / f no final.

Eu uso o seguinte método. Isso faz parte de um ripper MRU para Windows XP, que pode ajudar. Este é o texto de um arquivo em lote, executado a partir do CMD ou de um atalho. Ele cria um arquivo de registro usando redirecionamentos de eco simples e o importa.

Não sou um programador, apenas faço algumas coisas em lote para mim mesmo, então muitas vezes nem consigo ler o que escrevi, mas usaria isso como um modelo para fazer outra coisa.

Os ecos são redirecionados (& gt) para um arquivo, com o único & gt para o primeiro redirecionamento e & gt & gt para anexar ao mesmo arquivo. O sinal - é usado para remover uma entrada do registro. Provavelmente seria bom deixar a última linha e ver o arquivo criado antes de importar. A importação pode ser feita silenciosamente, mas não vou fazer isso sozinho.

Isenção de responsabilidade: como uma pessoa pode causar sérios danos ao sistema removendo entradas do registro, é necessário um backup de imagem de disco que pode retornar o sistema quando o sistema falhar.

Permissões adequadas, elevações e algumas entradas no registro não permitirão apenas que o usuário as destrua, sem definir as permissões, por causa de sua importância.


Assista o vídeo: NAO ABRE WINDOWS 1087 RESOLVIDO! (Outubro 2021).